Reputation: 69
How can I simplify this code using razor engine (c# mvc)..Is there any way to mix c# and css inside razor engine?
Actually i am not getting correct answer while trying this
@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" />
}
}
Upvotes: 0
Views: 445
Reputation: 18034
You could try a simple loop?
@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">
}
}
Or, even better, with a html helper;
@for (var i = 1; i < 6; i++) {
@Html.RadioButton("example", i, item.vote == i, new { @class = "rating" })
}
Upvotes: 1
Reputation: 107387
Why not DRY up your code by trying something like:
for (int i = 1; i <= 5; i++)
{
<input type="radio" name="example" class="rating" value="@i"
@if(i == item.vote)
{
checked="checked"
}
/>
}
Presumably you want some kind of label / value however?
Upvotes: 1