MVC Razor,将if语句添加到foreach循环中

Lor*_*ion 15 asp.net-mvc foreach if-statement razor

我正在尝试将模型中的数据添加到带剃刀的表中.我的问题是我想要一个if语句来决定tagg应该是什么类,我不能让它工作.

当我添加如果我运行代码时出现以下错误

The foreach block is missing a closing "}" character
Run Code Online (Sandbox Code Playgroud)

我该如何添加if语句?这是我目前的代码

@{
      var counter = 0;            
}
@foreach (var item in Model)
{
       if(item.status == "Active") {
           <tr>
       }
       else {
           <tr class="danger">
       }
       <td>@counter</td>
       <td>@item.FirstName @item.LastName</td>
       <td>@item.Email</td>
       <td>@item.PhoneNumber</td>
       <td>Ändra</td>
       <td>Inaktivera</td>
        </tr>     
counter++;
}
Run Code Online (Sandbox Code Playgroud)

Mar*_*man 26

MVC应检测html标签并将其渲染出去,但似乎这并不总是有效.

在大括号之间,尝试添加标记

例如:

{
<text> 
   your html 
</text>
} 
Run Code Online (Sandbox Code Playgroud)

要么

如果您只是添加类,请尝试以下方法:

<tr @(item.status == "Active" ? String.Empty : "class=\"danger\"" )>
Run Code Online (Sandbox Code Playgroud)

  • 对于我当前版本的 MVC *3.2.3),我需要使用这种语法 &lt;tr @(item.status == "Active" ? String.Empty : "class=danger" )&gt; 因为引号是自动添加的。但是谢谢你的提示! (3认同)

cha*_*ara 5

试试下面的代码。

@{
    var counter = 0;            
}
@foreach (var item in Model)
{
       if(item.status == "Active") {
          <text> <tr> </text>
       }
       else {
           <text><tr class="danger"></text>
       }
       <td>@counter</td>
       <td>@item.FirstName @item.LastName</td>
       <td>@item.Email</td>
       <td>@item.PhoneNumber</td>
       <td>Ändra</td>
       <td>Inaktivera</td>
        </tr>     
    counter++;
}
Run Code Online (Sandbox Code Playgroud)