2012-10-29 12 views
13

が、私はモデルのatrributeに応じて、<tr>要素にクラスを追加したい、それがrazor構文を使用してhtml要素に動的にクラスを追加するにはどうすればいいですか?例えば

<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>要素が閉じていないと言われます。どのように達成できますか

答えて

23

私は三項演算子を使用しますか?そのようなことを書いてください。

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

おかげさまで! – cameron

+1

質問を回答として設定することを忘れないでください;) – Eilistraee

関連する問題