0

我正在尝试使用 WebMatrix 创建静态 html。(想想CMS。)

我在 App_Code/CardHelpers.cshtml 中有这个助手

@helper Cards (string mysuit){

// Class Tags
var ss = Html.Raw("<span class = \"spade\">"); 
var sh = Html.Raw("<span class = \"heart\">");  
var se = Html.Raw("</span>");

// Suits
var S = Html.Raw(ss + "&spades;" + se); 
var H = Html.Raw(sh + "&hearts;" + se);

<p> @mysuit and @H</p>

}

我称之为

@CardHelpers.Cards("S")

静态html输出是

<p> S and <span class = "heart">&hearts;</span></p>

所以我可以在 helper 中使用@H 来创建我想要的 html,但是我怎样才能传入一套西装(例如“S”)并创建适当的 html。在这里,我只是拿回了 S,但我想要返回的是

<span class = "spade">&spades;</span>
4

1 回答 1

0

Razor 的全部意义在于您可以混合使用标记和 C# 语法。因此,您要做的是放置一个条件或 switch 语句,为给定的输入选择正确的输出,如下所示:

@{ 
  string result = "";
  switch(mysuit) { 
    case "H": result = H; break;
    case "S": result = S; break;
    default: break;
  }
  <p> @mysuit and @result</p>
}
于 2012-08-16T05:56:57.637 回答