2011-12-22 28 views
45

Necesito verificar si mi modelo es válido desde mi vista de Razor. Si es válido, entonces quiero poder mostrar algo de HTML.¿Cómo puedo verificar si mi modelo es válido desde el interior de la vista de afeitar?

¿Cómo puedo hacer esto. Quiero algo así como

@if (Model.IsValid) { 

} 

pero lo anterior no funciona

+0

Odio preguntar esto, pero ¿por qué? El único escenario en el que puedo pensar es si no puede usar la validación de jQuery por algún motivo. – Peter

+3

@Peter (y cualquier persona con la misma pregunta), imagina que quieres generar un elemento 'div' * pero solo si * la información enviada anteriormente no es válida, p. muestra un elemento de contenedor para una alerta de credenciales de inicio de sesión no válidas. –

+0

@Peter mi querido amigo, imagina esto: estás cargando un archivo y quieres comprobar si tiene el formato correcto, ¿puedes hacerlo en javascript? - No, no puedes! De modo que puede hacer una verificación en el lado del servidor y, si falla, puede agregar un error a ModelState para mostrarlo en la página. –

Respuesta

74

Puede comprobar si el ModelState es válida, pero tenga en cuenta que sólo se está comprobando la validez de la ModelState en el momento la solicitud web se hizo:

@if (ViewData.ModelState.IsValid) { 
    ... 
} 

Además, se puede comprobar validatity de una propiedad en el modelo en la vista:

@if (ViewData.ModelState.IsValidField("FIELD_NAME")) { 
    ... 
} 
+3

+1 por mencionar CUÁNDO se valida el estado del modelo. –

+0

'FIELD_NAME' pasado a' IsValidField' debe ser ** nombre completo ** del campo en relación con toda la jerarquía de ViewModel. –

Cuestiones relacionadas