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!

questionAnswers(1)

yourAnswerToTheQuestion