Asp.net 为mvc 4中dropdownlist中的选项赋值
我是MVC4的新手,所以这听起来可能很琐碎 下面是一段razor代码:Asp.net 为mvc 4中dropdownlist中的选项赋值,asp.net,asp.net-mvc-4,razor,dropdownlistfor,Asp.net,Asp.net Mvc 4,Razor,Dropdownlistfor,我是MVC4的新手,所以这听起来可能很琐碎 下面是一段razor代码: @Html.DropDownListFor(model => model.ResidentTypes[i].LevelID, new SelectList(Model.LevelOfTraining, "Value", "Text", Model.ResidentTypes[i].LevelID), "--Select--", new { @style = "" }) 它显示一个下拉列表,其中包含一些选项和一个“”
@Html.DropDownListFor(model => model.ResidentTypes[i].LevelID, new SelectList(Model.LevelOfTraining, "Value", "Text", Model.ResidentTypes[i].LevelID), "--Select--", new { @style = "" })
它显示一个下拉列表,其中包含一些选项和一个“”--选择--“。
但是select没有指定值。你能告诉我如何将值作为0添加到“--选择--”选项吗?你可以使
LevelID
为null-int?
;我在SelectList
类上使用扩展方法
public static class SelectListExtension {
public static SelectList Prepend(this SelectList list, string text, string value, bool selected = false) {
if (list == null) {
throw new ArgumentNullException("list");
}
return new SelectList(new SelectListItem[] {
new SelectListItem {
Selected = selected,
Text = text,
Value = value
}
}.Union(list), "Value", "Text");
}
public static SelectList Default(this SelectList list, string text, string value = null) {
if (list == null) {
throw new ArgumentNullException("list");
}
return list.Prepend(text, value, true);
}
public static SelectList Default(this SelectList list) {
if (list == null) {
throw new ArgumentNullException("list");
}
// localization here
string defaultMessage = "-- SELECT --";
return list.Default(defaultMessage);
}
}
这可能对你有帮助