Html.ListBox - PullRequest
       17

Html.ListBox

1 голос
/ 26 мая 2009

Я пытаюсь повторно выбрать элементы в списке с asp.net mvc

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

Вот данные просмотра

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 ]

6 голосов
/ 27 мая 2009

Обратите внимание, что только идентификаторы элементов должны быть переданы в selectedValues ​​ параметр MultiSelectList () , поэтому вы должны использовать

Html.ListBox("SupplierId", new MultiSelectList(Model.Suppliers, "Id", "Name",
    Model.SelectedSuppliers.Select(s => s.Id)))
0 голосов
/ 26 мая 2009

Я боролся с той же проблемой несколько недель назад. Методы расширения по умолчанию для списков MultiSelect не работают должным образом. В итоге я просто перебрал элементы и вручную установил их свойство selected.

0 голосов
/ 26 мая 2009

Документация для конструктора SelectList ссылается на одно значение. Не похоже, что передача в List или IEnumerable значений приведет к появлению списка со множеством выбранных значений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...