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 に答える