23

我想<tr>根据模型的属性向元素添加类:

<table>
  <tbody>
   @foreach (var item in Model)
   {
     if (item.Level == 1)
     {
       <tr class="classA">
     }
     else if (item.Level == 2)
     {
       <tr class="classB">
     }
     else
     {
       <tr>
     }

     <td>...</td>
     <td>...</td>         

     </tr>
   </tbody>
</table>

我的 IDE 告诉我我的<tr>元素没有关闭。如何使用剃刀动态添加类值?

4

1 回答 1

37

我会使用三元运算符吗?并写出类似的东西。

<tr class="@(item.Level==1?"classA":item.Level == 2?"classB":"")">

它的可读性不是很好,并且不适用于复杂的比较。在这些情况下,我建议您在剃刀视图中声明一个方法

@functions{ 
  public string GetClassFromLevel(int level) 
    {
        return level == 1 ? "classA" : level == 2 ? "classB" : "";
  }
}

<tr class"@GetClassFromLevel(item.Level)">
于 2012-10-29T14:10:02.443 回答