C# MVC3下拉列表
我想做一个下拉列表,数字是0-10。所以用户可以给一些东西打分。 目前,我有一个标签:@Html.LabelFor(model=>model.RATE) 我如何修改这个代码,我将有一个下拉框?下拉框的值将存储在model.RATE中 标签可以正常工作,但最好有一个下拉菜单 解决方案:C# MVC3下拉列表,c#,asp.net-mvc,asp.net-mvc-3,razor,html.dropdownlistfor,C#,Asp.net Mvc,Asp.net Mvc 3,Razor,Html.dropdownlistfor,我想做一个下拉列表,数字是0-10。所以用户可以给一些东西打分。 目前,我有一个标签:@Html.LabelFor(model=>model.RATE) 我如何修改这个代码,我将有一个下拉框?下拉框的值将存储在model.RATE中 标签可以正常工作,但最好有一个下拉菜单 解决方案: @Html.DropDownListFor(model => model.RATE, Enumerable.Range(0,11).Select( x => new SelectListItem { T
@Html.DropDownListFor(model => model.RATE, Enumerable.Range(0,11).Select( x => new SelectListItem { Text = x.ToString() }));
这将执行与表单的数据绑定,并从表单创建一个包含评级的
SelectListItem
对象列表,然后使用Html.DropDownListFor
将评级存储在模型中(model.RATE
)
@{
var评级=新列表();
对于(var i=0;i x.比率,评级)
@Html.DropDownListFor(m=>m.RATE,Model.RateSelectList,”)
Model.RateSelectList的类型为IEnumerable,m.RATE是可为空的整数(int?)属性。第三个参数是默认文本,显示m.RATE是否为空。0-10有11个元素。因此可枚举。范围(0,11)。这对我不起作用…您不能将
可枚举的
分配给可枚举的
。您可以使用可枚举的.Range(0,11)。选择(x=>new SelectListItem{Text=x.ToString()})
没错,但是SelectList有一个仅用于可枚举项的构造函数,因此您可以使用该构造函数来为您执行此操作。谢谢,这对我有用:@Html.DropDownListFor(model=>model.RATE,Enumerable.Range(0,11)。Select(x=>new SelectListItem{Text=x.ToString()}));在遇到这个问题之前,我不知道如何设置默认值。谢谢。
@Html.DropDownListFor(model => model.RATE, new SelectList(Enumerable.Range(0, 11)))
@{
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 )
@Html.DropDownListFor(m => m.RATE, Model.RateSelectList, "<- Select Option ->")