ASP.NET MVC: validación DropDownList

Nota: Lo siguiente es solo un ejemplo.

Soy bastante nuevo en ASP.NET MVC y estoy tratando de entender cómo funciona la validación de las listas desplegables. Tengo la siguiente propiedad en miProfileViewModel clase:

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

null está destinado a significar "desconocido",true mujer yfalse masculino. En la vista modelo constructor I

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

En primer lugar, parece que tengo que usar cadenas al rellenar unList<SelectListItem>, lo que se siente un poco raro. ¿Es realmente así como se hace?

En segundo lugar, cuando elijo "Desconocido" en la lista, la validación falla y me dice:

El valor 'nulo' no es válido para Sexo.

¿Porqué es eso? Cuando elimino la opción "nulo" y cambioGender a un simpleboolTodo parece estar bien.

Este es el ASPX:

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

(No puedo conseguirDropDownListFor funciona correctamente y parece que muchos otros tienen el mismo problema).

Cualquier ayuda apreciada!

Respuestas a la pregunta(1)

Su respuesta a la pregunta