Примечание: ниже приведен только пример.
Я довольно новичок в 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
работать правильно, и похоже, что у многих других есть такая же проблема.)
Любая помощь приветствуется!