ASP.NET MVC: проверка DropDownList - PullRequest
       3

ASP.NET MVC: проверка DropDownList

2 голосов
/ 02 сентября 2010

Примечание: ниже приведен только пример.

Я довольно новичок в ASP.NET MVC и пытаюсь понять, как работает проверка выпадающих списков. У меня в классе ProfileViewModel есть следующее свойство:

[DisplayName("Gender")]
public bool? Gender { get; set; }

null означает «неизвестный», true женщина и false мужчина. В представлении модель конструктора I

AllGenders = new List<SelectListItem>(2)
             {
                 new SelectListItem {Text = "Unknown", Value = "null"},
                 new SelectListItem {Text = "Male", Value = "false"},
                 new SelectListItem {Text = "Female", Value = "true"}
             };

Прежде всего, мне кажется, что я должен использовать строки при заполнении List<SelectListItem>, что кажется странным. Это действительно так?

Во-вторых, когда я выбираю «Неизвестно» в списке, проверка не проходит, сообщая мне:

Значение 'null' недопустимо для пола.

Почему это? Когда я удаляю «нулевой» параметр и меняю Gender на простой bool, все выглядит нормально.

Это ASPX:

<%= Html.DropDownList("Gender", Model.AllGenders) %>

(я не могу заставить DropDownListFor работать правильно, и похоже, что у многих других есть такая же проблема.)

Любая помощь приветствуется!

1 Ответ

4 голосов
/ 02 сентября 2010
new SelectListItem {Text = "Unknown", Value = "null"},

должно быть:

new SelectListItem {Text = "Unknown", Value = ""},

Публикация "" приведет к привязке нулевого значения.

...