2012-05-22 70 views
4

我想做一個下拉列表,數字爲0-10。所以用戶可以評價一些東西 目前,我有一個標籤:@ Html.LabelFor(model => model.RATE) 如何修改此代碼,我將有一個下拉框?而下拉框的值將存儲在model.RATE中?MVC3 dropdownlistfor

該標籤正在工作,但它有更好的下拉菜單。

SOLUTION:

@Html.DropDownListFor(model => model.RATE, Enumerable.Range(0,11).Select(x => new SelectListItem { Text = x.ToString() })); 

回答

4

只需創建包含收視率SelectListItem對象的列表,然後用Html.DropDownListFor,存儲在您的模型中的評級(Model.RATE)。

@{ 
    var ratings = new List<SelectListItem>(); 
    for(var i = 0; i <= 10; i++) { 
     days.Add(new SelectListItem { Text = i.ToString(), Value = i.ToString(), Selected = Model.RATE == i }); 
    } 
} 
@Html.DropDownListFor(x => x.RATE, ratings) 
4
@Html.DropDownListFor(model => model.RATE, new SelectList(Enumerable.Range(0, 11))) 

這將做數據綁定的形式和從形式

+0

0-10有11個元素。所以Enumerable.Range(0,11)。 – DMulligan

+0

這對我不起作用......你不能將'Enumerable '分配給'Enumerable '。 –

+0

你可以使用'Enumerable.Range(0,11).Select(x => new SelectListItem {Text = x.ToString()})' –

1
@Html.DropDownListFor(m => m.RATE, Model.RateSelectList, "<- Select Option ->") 

Model.RateSelectList將IEnumerable類型<SelectListItem>的,m.RATE將是你的空整型(INT?)屬性。第三個參數將是您的默認文本,它將顯示m.RATE是否爲空。

+0

我不知道如何設置默認值,直到我遇到這個問題。謝謝。 – BrianLegg