如何使用razor语法动态地向html元素添加类?

时间:2012-10-29 13:58:50

标签: razor

例如,我想根据模型的属性将类添加到<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>元素没有关闭。我怎样才能实现

1 个答案:

答案 0 :(得分:26)

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

<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)">