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 simplebool
Todo 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!