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

Рик Андерсон

Начало работы

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

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

Azure

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

ASP.NET MVC DropDownListFor с SelectListItem

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

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

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

Дополнительную информацию см. в разделе GetSelectListWithDefaultValue Modifies IEnumerable<SelectListItem> selectList