1

我正在使用 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");
4

1 回答 1

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" })
于 2013-06-24T12:30:59.673 回答