2011-09-27 19 views
5

me gustaría enlazar una lista desplegable a un número entero de la siguiente manera:MVC3 - Encuadernación DROPDOWNLIST a int - Valor siempre requiere

@Html.DropDownListFor(m => m.ProductID, Model.AllProducts, "") 

Obviamente en el caso anterior estoy permitiendo a un valor predeterminado (en blanco) para que no se elige ningún valor por defecto. Mi modelo de vista es muy simple, y no tiene ningún anotaciones para estas propiedades

public SelectList AllProducts {get;set;} 
public int ProductID {get;set;} 

Parece que porque estoy unión a una validación de datos int es forzado que resulta en datos-val * atributos generados en mi html y causando mi validación del lado del cliente falla si no elijo una opción. La alternativa parece ser vinculante para una cadena en lugar de una int y luego analizar la cadena en el servidor, sin embargo, esto parece un poco hackish y me pregunto si existe una alternativa que me permita enlazar a una int, con un valor por defecto (vacío), pero no hacen este campo obligatorio

Gracias

JP

Respuesta

11

debe utilizar un número entero anulable en en su modelo de vista para unirse a si el menú desplegable ilst podría tener un defecto valor:

public SelectList AllProducts { get; set; } 
public int? ProductID { get; set; } 

Y si desea aplicar la validación de que el usuario realmente selecciona un valor de decorar con el atributo requerido:

public SelectList AllProducts { get; set; } 
[Required] 
public int? ProductID { get; set; } 
+0

Uf que soy un idiota ... y no me gusta ser un idiota. Si solo pudiera recuperar la última media hora de mi vida ... –

+0

@JP., Me alegro de poder ayudar. ¿Todavía quedan algunos problemas o podría cerrar esta pregunta? –

+0

Tuve que esperar unos minutos antes de que me permitiera cerrar. Respuesta aceptada ahora - ¡gracias por su ayuda! –

Cuestiones relacionadas