[英]How to specify “value” for asp.net mvc Html helper droplist
我想为我的选择列表框中的每个选项指定一个值,但是我正在使用html助手生成它。
所以我有这个
<%= Html.DropDownList("DropDownList") %>
//控制器
ViewData["DropDownList"] = new SelectList(MyClass.GenerateListBox());
// MyClass
public static List<string> GenerateListBox()
{
List<string> listBox= new List<string>();
listBox.Add("Bye");
listBox.Add("hi");
listBox.Add("something");
return listBox;
}
因此,我看到SelectList有一个“ stringDataField”,但它只是一个字符串而不是列表,因此现在可以确定要更改的内容。
我还需要列出其他种类的清单吗?
谢谢
使用此构造函数:
ViewData["DropDownList"] = new SelectList(GenerateListBox(), "Value", "Text");
public static List<SelectListItem> GenerateListBox()
{
List<SelectListItem> listBox = new List<SelectListItem>();
listBox.Add(new SelectListItem { Text = "bye", Value = "byeValue" });
listBox.Add(new SelectListItem { Text = "hi", Value = "hiValue" });
listBox.Add(new SelectListItem { Text = "something", Value = "somethingValue" });
return listBox;
}
具体来说,不是给它一个字符串列表,而是给它一个具有DisplayName和Value属性的对象的列表(例如, KeyValuePair<String, String>
,尽管我建议更具体一些),然后传递这些对象的名称该构造函数的属性。 这将设置DataTextField和DataValueField属性。
编辑 :我的意思是,不是让您的GenerateListBox方法返回List<String>
,而是应该让它返回List<YourClass>
,并使YourClass
类具有DisplayName和Value的属性。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.