我正在使用asp.net mvc。我的视图中有一个列表框。始终在页面加载时选择此列表框中的选项。我没有为此列表框定义任何选定的值。谁能告诉我为什么会这样?
这是代码
@{
Dictionary<string, string> Options = new Dictionary<string, string>();
ddlOptions.Add("1", "1");
ddlOptions.Add("2", "2");
ddlOptions.Add("3", "3n");
ddlOptions.Add("4", "4");
}
<td>@Html.ListBoxFor(model => model.AvailableProducts,
new MultiSelectList(Options , "Key", "Value"),
new { size = "6" })
model.AvailableProducts是一个字符串列表:
List<string> product = new List<string>();
product.Add("1");
product.Add("2");
product.Add("3");
product.Add("4");
答案 0 :(得分:1)
已选择选项,因为它们反映了模型的状态。这一行
@Html.ListBoxFor(model => model.AvailableProducts
告诉ASP.NET MVC将属性model.AvailableProducts
绑定到列表框。由于此属性包含列表中显示的所有四个选项,因此默认情况下都会选中它们。您可以注释掉填充此列表的代码,并验证是否未选择任何选项。
如果您真的只想要一个带有选项的列表框,这些选项会为请求添加名称为AvailableProducts
的特定参数,您可以使用Html.ListBox
:
@Html.ListBox("AvailableProducts",
new MultiSelectList(Options , "Key", "Value"),
new { size = "6" })