cur*_*us1 3 asp.net-mvc asp.net-mvc-5
我正在尝试创建一个禁用了一些选项的下拉列表,以使它们无法选择。这是我的代码:
var places = new SelectList(new List<SelectListItem>
{
new SelectListItem { Selected = false, Text = "Virgin Islands", Value = "Virgin Islands"},
new SelectListItem { Selected = false, Text = "", Value = "", Disabled= true},
new SelectListItem { Selected = false, Text = "Canada", Value = "Canada", Disabled= true},
new SelectListItem { Selected = false, Text = "", Value = "", Disabled= true},
new SelectListItem { Selected = false, Text = "Other", Value = "Other"},
}, "Value", "Text");
Run Code Online (Sandbox Code Playgroud)
但是,为禁用的SelectListItem生成的HTML仅仅是:
<option value=""></option>
Run Code Online (Sandbox Code Playgroud)
我如何生成以下HTML
<option disabled="disabled"></option>
Run Code Online (Sandbox Code Playgroud)
从SelectListItem?
谢谢!
小智 6
Disabled仅当您使用IEnumerable<SelectListItem>时不使用该属性SelectList(在SelectList构造器中,您仅设置和的属性),并且在任何情况下,当助手仅接受该属性时Value,再创建该属性Text几乎没有意义IEnumerable<SelectListItem>SelectListIEnumerable<SelectListItem>
var places = new List<SelectListItem>
{
new SelectListItem { Selected = false, Text = "Virgin Islands", Value = "Virgin Islands"},
new SelectListItem { Selected = false, Text = "", Value = "", Disabled= true},
....
};
Run Code Online (Sandbox Code Playgroud)
然后在助手中
@Html.DropDownList(m => m.YourProperty, model.places) // or (IEnumerable<SelectListItem>)ViewBag.places
Run Code Online (Sandbox Code Playgroud)
旁注:SelectList确实有一个IEnumerable disabledValues以参数为重载的构造函数(请参阅文档)