4

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

标签正在工作,但最好有一个下拉菜单。

解决方案:

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

3 回答 3

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

这将对表单和表单进行数据绑定

于 2012-05-22T20:25:55.890 回答
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 )
于 2012-05-22T20:26:19.477 回答
1
@Html.DropDownListFor(m => m.RATE, Model.RateSelectList, "<- Select Option ->")

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

于 2012-05-22T20:28:23.383 回答