Html.ListBox

时间:2009-05-26 13:18:39

标签: asp.net-mvc listbox

我正在尝试使用asp.net mvc重新选择列表框中的项目

Html.ListBox("SupplierId",
             new SelectList(Model.Suppliers, "Id", "Name", Model.SelectedSuppliers))

这是viewdata

var viewData = new ViewData.SubstrateEditViewData(
               new DataAccess.SubstrateRepository().GetItemById(id),
               new DataAccess.SupplierRepository().GetItems(),
               new DataAccess.SupplierSubstrateRepository().GetItems().Where(s =>  s.SubstrateId ==id).Select(s => s.Supplier));

由于某种原因,即使我看到包含两个供应商对象的Model.SelectedSupplier,它也没有选择项目。

由于

3 个答案:

答案 0 :(得分:6)

请注意,只有项目的ID才能传递给 MultiSelectList()方法的 selectedValues 参数,因此您应该使用

Html.ListBox("SupplierId", new MultiSelectList(Model.Suppliers, "Id", "Name",
    Model.SelectedSuppliers.Select(s => s.Id)))

答案 1 :(得分:0)

SelectList构造函数的documentation引用单个值。它看起来不像传入List或IEnumerable值会导致列表框中选择了多个值。

答案 2 :(得分:0)

几周前,我一直在努力解决同样的问题。 MultiSelect列表的默认扩展方法不符合预期。我最终只是自己循环浏览项目并手动设置selected属性。