如何将动态类添加到HTML标记?

时间:2014-08-06 13:56:44

标签: html asp.net asp.net-mvc razor

例如,在以下示例中,我想基于特定条件添加名为“noDisplay”的类。 (1 == 1,为简单起见。)

我试过了:

<tr class='@if (1== 1) { Html.Raw("noDisplay"); }'>

@if (1 == 1) { 
 @: class="noDisplay"
}>

3 个答案:

答案 0 :(得分:3)

您发布的内容正在发挥作用,但Html.Raw部分仅被视为函数调用,而不是要呈现的内容。简单的解决方案是在调用前添加@符号(这将使Razor呈现函数的输出)或删除对Html.Raw的调用并使用<text>块:

<tr class='@if (1== 1) { @Html.Raw("noDisplay"); }'>

或者:

<tr class='@if (1== 1) { <text>noDisplay</text> }'>

答案 1 :(得分:0)

这是你需要做的:

@{
    var myClass = (1 == 1 ? "noDisplay" : "");
}

<tr class='@myClass'>

或者,只是:

<tr class='@(1 == 1 ? "noDisplay" : "")'>

答案 2 :(得分:0)

Object

@{ if(1 == 1) { var theClass = "noDisplay"; } } <tr class='@theClass'> 是一个输出包含纯文本或不匹配的HTML标记的单行内容的运算符。 @:定义了一个代码块。使用@{ ... }可以访问您在代码或其他C#构造中定义的变量。

此处有更多信息和示例:http://www.asp.net/web-pages/overview/getting-started/introducing-razor-syntax-c