我有以下代码,但它从不选择我想要的值. ListSelectListItem list = new ListSelectListItem(); SelectListItem one = new SelectListItem() { Text = "MyTest", Value = "MyTest"}; SelectListItem two= new SelectListItem() { Text = "Tes
List<SelectListItem> list = new List<SelectListItem>(); SelectListItem one = new SelectListItem() { Text = "MyTest", Value = "MyTest"}; SelectListItem two= new SelectListItem() { Text = "Test2", Value = "Test2" }; if (id == "MyTest") { one .Selected = true; } else { two.Selected = true; } list.Add(one); list.Add(two); ViewData["DDL"] = new SelectList(list, "value", "text");
所以我不确定我做错了什么
在我看来,我有
<%= Html.DropDownList("DDL") %>你应该使用:
ViewData["DDL"] = new SelectList(list, "value", "text", id == "MyTest" ? "MyTest" : "Test2");
您应该在SelectList构造函数中定义选定的值.
编辑
回答问题:
您不必为SelectList构造函数提供List.它可以是任何对象的集合.您只需提供关键,价值和选定的价值.您的代码也可能如下所示:
var selectItems = new Dictionary<string, string> {{"MyTest", "MyTest"}, {"Test2", "Test2"}}; ViewData["DDL"] = new SelectList(selectItems, "Key", "Value", id == "MyTest" ? "MyTest" : "Test2");