我有以下的code,但它也不会选择我想要的值。
名单,其中,SelectListItem>名单=新的名单,其中,SelectListItem>();
SelectListItem 1 =新SelectListItem(){文本=MyTest的,值=MyTest的};
SelectListItem 2 =新SelectListItem(){文本=的Test2,值=Test2的};
如果(ID ==MyTest的)
{
1 .Selected =真;
}
其他
{
two.Selected = TRUE;
}
list.Add(之一);
list.Add(二);
计算机[DDL] =新的SelectList(列表中,价值,文字);
所以我不知道我做错了
在我看来,我有
<%= Html.DropDownList(DDL)%>
解决方案
您应该使用:
计算机[DDL] =新的SelectList(列表中,价值,文本,ID ==MyTest的MyTest的:Test2的?);
您应该SelectList的构造函数中定义选择的值。
修改
答到问题:
您不必提供名单给SelectList的构造。它可以收集任何对象。你只需要提供键,值属性格式和选择的值。您的code也可以是这样的:
VAR selectItems的=新字典<字符串,字符串> {{MyTest的,MyTest的},{Test2的,Test2的}};
计算机[DDL] =新的SelectList(selectItems的钥匙,价值,ID ==MyTest的MyTest的?:的Test2);
I have the following code but it never selects the value I want.
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");
So I am not sure what I am doing wrong
in my view I have
<%= Html.DropDownList("DDL") %>
解决方案
You should use:
ViewData["DDL"] = new SelectList(list, "value", "text", id == "MyTest" ? "MyTest" : "Test2");
You should define selected value in SelectList constructor.
EDIT
Answer to question:
You don't have to provide List to SelectList constructor. It can be collection of any object. You just have to provide key, value propery and selected value. Your code could also look like:
var selectItems = new Dictionary<string, string> {{"MyTest", "MyTest"}, {"Test2", "Test2"}};
ViewData["DDL"] = new SelectList(selectItems, "Key", "Value", id == "MyTest" ? "MyTest" : "Test2");