MVC3下拉列表

时间:2012-05-22 20:22:26

标签: c# asp.net-mvc asp.net-mvc-3 razor html.dropdownlistfor

我想制作一个下拉列表,数字为0-10。所以用户可以评价一些东西 目前,我有一个标签:@ Html.LabelFor(model => model.RATE) 如何修改此代码,我将有一个下拉框?并且下拉框的值将存储在model.RATE?

标签正在运作,但是有一个下拉菜单会好得多。

SOLUTION:

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

3 个答案:

答案 0 :(得分:4)

@Html.DropDownListFor(model => model.RATE, new SelectList(Enumerable.Range(0, 11)))

这将执行数据绑定到表单和表单

答案 1 :(得分: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 )

答案 2 :(得分:1)

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

Model.RateSelectList的类型为IEnumerable&lt; SelectListItem&gt;,m.RATE将是您的可空整数(int?)属性。第三个参数是您的默认文本,如果m.RATE为空,则显示该文本。