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

cam*_*ron 15 razor

例如,我想<tr>根据模型的atrribute 将类添加到元素,即

<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>
Run Code Online (Sandbox Code Playgroud)

但在这里,ide告诉我我的<tr>元素没有关闭.我怎样才能做到这一点

Eil*_*aee 28

我会用三元运算符吗?写那样的东西.

<tr class="@(item.Level==1?"classA":item.Level == 2?"classB":"")">
Run Code Online (Sandbox Code Playgroud)

它不是非常易读,也不适用于复杂的比较法.在这些情况下,我建议你在剃刀视图中声明一个方法

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

<tr class"@GetClassFromLevel(item.Level)">
Run Code Online (Sandbox Code Playgroud)

  • 不要忘记将问题设置为已回答;) (2认同)