Почему привязка модели не работает в DropDown?
Что я делаю не так?
Чтобы проиллюстрировать мою проблему, я сделал следующее:
Создан новый проект MVC asp.net (бета1)
Создан следующий класс:
HomeViewData : ViewDataDictionary
+List : SelectList
Добавлены данные о просмотре в класс HomeController следующим образом
Homecontroller: Controller
+HomeViewData vd = new HomeViewData
Добавлены следующие строки в мой метод Home.Index ()
vd.list = new SelectList(new List<string>(){"test", "test1", "test2"});
return View("Index", vd);
И реплицировал тот же метод, но с другой подписью для перехвата обратных вызовов
[AcceptVerps(HttpVerbs.Post)]
public ActionResult Index(HomeViewdata d)
Здесь я добавил точку останова в первую строку кода.
Затем я добавил следующий код в свой Index.aspx
<%Html.BeginForm();%>
<%=Html.DropDownList("List")%>
<%Html.EndForm();%>
В результате я получаю страницу с хорошим выпадающим списком со значениями test, test1 и test2.
Затем после выбора значения я нажимаю клавишу ввода (не нажимая кнопку отправки) и вижу, как моя точка останова останавливает код. Я проверяю значение HomeViewData ...
NULL
Если я выполняю то же упражнение, но с текстовым полем, например, все работает нормально ...
- EDIT -
Вещи, которые я пробовал с этого поста:
- Добавление атрибута [Bind (Prefix = "")] к моему действию в соответствии с предложением Фила
- Добавление [Bind (Prefix = "")], чтобы увидеть, удалит ли это ошибку "пустое имя не разрешено"
- Добавление имени параметра моего действия в имя моего элемента управления