2012-10-29 25 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