Рекомендуемые учебники и статьи по MVC

Рик Андерсон

Приступая к работе

Работа с данными

Безопасность

Azure

Производительность и отладка

ASP.NET MVC DropDownListFor с SelectListItem

При использовании вспомогательного DropDownListFor средства и передаче ему коллекции SelectListItem , из которой он заполняется, DropdownListFor объект изменяет переданную коллекцию после ее вызова. DropdownListFor изменяет выбранные SelectListItems свойства на все, что было выбрано раскрывающимся списком. Это приводит к непредвиденному поведению.

DropDownList, DropDownListFor, EnumDropDownListFor, ListBoxи ListBoxFor обновляют свойство Selected любого IEnumerable<SelectListItem> переданного или найденного в ViewData.

Обходной путь заключается в создании отдельных перечислений, содержащих отдельные SelectListItem экземпляры, для каждого свойства в модели.

Дополнительные сведения см. в статье GetSelectListWithDefaultValue Modifies IEnumerable<SelectListItem> selectList