2014-02-12 102 views
0

我怎樣才能簡化這個代碼使用剃刀引擎(c#mvc)..有沒有什麼辦法混合c#和css內剃刀引擎?混合css與c#mvc在剃刀

其實我沒有得到正確的答案,同時嘗試這

@model FoodViewModel 

@foreach (FoodView item in Model.Foodviews) 
{   
@if (item.vote == 1) 
     { 
     <input type="radio" name="example" class="rating" value="1" checked="checked" /> 
     <input type="radio" name="example" class="rating" value="2" /> 
     <input type="radio" name="example" class="rating" value="3" /> 
     <input type="radio" name="example" class="rating" value="4" /> 
     <input type="radio" name="example" class="rating" value="5" /> 
     } 
     else if(item.vote == 2) 
     { 
     <input type="radio" name="example" class="rating" value="1" /> 
     <input type="radio" name="example" class="rating" value="2" checked="checked" /> 
     <input type="radio" name="example" class="rating" value="3" /> 
     <input type="radio" name="example" class="rating" value="4" /> 
     <input type="radio" name="example" class="rating" value="5" /> 
     } 
     else if (@item.vote == 3) 
     { 
     <input type="radio" name="example" class="rating" value="1" /> 
     <input type="radio" name="example" class="rating" value="2" /> 
     <input type="radio" name="example" class="rating" value="3" checked="checked" /> 
     <input type="radio" name="example" class="rating" value="4" /> 
     <input type="radio" name="example" class="rating" value="5" /> 
     } 

     else 
     { 
     <input type="radio" name="example" class="rating" value="1" /> 
     <input type="radio" name="example" class="rating" value="2" /> 
     <input type="radio" name="example" class="rating" value="3" /> 
     <input type="radio" name="example" class="rating" value="4" /> 
     <input type="radio" name="example" class="rating" value="5" /> 
     } 
} 

回答

1

你可以嘗試一個簡單的循環?

@for (var i = 1; i < 6; i++) { 
    if (i == item.vote) { 
     <input type="radio" name="example" class="rating" value="@i" checked> 
    } else { 
     <input type="radio" name="example" class="rating" value="@i"> 
    } 
} 

或者,更好的方法是使用html助手;

@for (var i = 1; i < 6; i++) { 
    @Html.RadioButton("example", i, item.vote == i, new { @class = "rating" }) 
} 
+0

在哪裏進行了條件檢查?在第二個答案? – user3300195

+0

@ user3300195第三個參數是一個布爾值(isChecked) - 通過將'item.vote == i'傳遞給它,投票的項目將被檢查。 – xec

+0

嗨,我有一個小問題,如果每個項目有5個單選按鈕,那麼顯示所有項目評級時,只有一個項目的評級正在檢查。其他不檢查 – user3300195

1

爲什麼不試着像乾涸代碼:

for (int i = 1; i <= 5; i++) 
{ 
    <input type="radio" name="example" class="rating" value="@i" 
    @if(i == item.vote) 
    { 
     checked="checked" 
    } 
    /> 
} 

想必你想要某種標籤/值不過?

+0

哈哈,+1的幾乎我寫的:)我不知道同樣的事情剃刀如何以及是否在雖然HTML標籤的中間,這就是爲什麼我寫了兩''秒 - 你確定它會這樣工作嗎? – xec

+0

我正在從數據庫中獲取數據,還需要生成多組單選按鈕,以便對每個項目進行評分 – user3300195