用剃刀编写条件HTML

Dan*_*aar 3 asp.net-mvc razor

根据我的记录,我想在当前迭代中更改表行的样式.

以下示例不起作用,但我将如何正确地执行此操作?

 foreach (var item in Model)
                {
                    @{ 
                        if (item.DataState != DataState.Active)
                        {
                            <tr style="background-color: red">
                        }
                        else
                            <tr>
                    }
                    <td>@item.Name</td>
                  </tr>
                 }
Run Code Online (Sandbox Code Playgroud)

如此有效,我想<tr>根据模型的DataState 动态呈现元素.

Sku*_*ami 16

这是一个更短的方法:

@foreach (var item in Model)
{
    <tr @(item.DataState != DataState.Active ? "style=background-color:red" : "")>
        <td>@item.Name</td>
    </tr>
}
Run Code Online (Sandbox Code Playgroud)

编辑:代码已修复


Sen*_*der 5

您可以通过多种方式编写条件。

选项1:

@foreach (var item in Model)
{
    if (item.DataState != DataState.Active)
    {
        <tr style="background-color: red">
            <td>@item.Name</td>
        </tr>
    }
    else
    {
       <tr>
            <td>@item.Name</td>
       </tr>
    }
}
Run Code Online (Sandbox Code Playgroud)

选项 2:

@foreach (var item in Model)
{
    <tr style="@( item.DataState != DataState.Active ? "background-color: red;" : "" )">
        <td>@item.Name</td>
    </tr>
}
Run Code Online (Sandbox Code Playgroud)