Validação de DropDownList do ASP.NET MVC:
Nota: O seguinte é apenas um exemplo.
Eu sou muito novo no ASP.NET MVC e estou tentando entender como funciona a validação de listas suspensas. Eu tenho a seguinte propriedade no meuProfileViewModel
classe:
[DisplayName("Gender")]
public bool? Gender { get; set; }
null
deve significar "desconhecido",true
fêmea efalse
masculino. No construtor do modelo de exibição I
AllGenders = new List<SelectListItem>(2)
{
new SelectListItem {Text = "Unknown", Value = "null"},
new SelectListItem {Text = "Male", Value = "false"},
new SelectListItem {Text = "Female", Value = "true"}
};
Primeiro de tudo, parece que eu tenho que usar strings ao preencher umList<SelectListItem>
, o que é meio estranho. É realmente assim que é feito?
Em segundo lugar, quando eu escolho "Desconhecido" na lista, a validação falha ao me dizer:
O valor 'null' não é válido para Gender.Por que é que? Quando removo a opção "nula" e alteroGender
para um simplesbool
, tudo parece bem.
Este é o ASPX:
<%= Html.DropDownList("Gender", Model.AllGenders) %>
(Eu não consigoDropDownListFor
funcionar corretamente e parece que muitos outros têm o mesmo problema.)
Qualquer ajuda apreciada!