tutorial side net mvc framework custom attribute asp validation asp.net-mvc-3 client-side-validation

validation - side - IValidatableObject en MVC3-validación del lado del cliente



custom validation asp net core (3)

Con MVC3 tiene dos nuevos mecanismos para agregar validación personalizada. Estos son (1) subclase ValidationAttribute o (2) implementa IValidatableObject.

ValidationAttribute le permite agregar validación del lado del cliente de manera relativamente simple implementando IClientValidatable (y registrando un nuevo adaptador y método a través de jQuery).

IValidatableObject es más adecuado para los requisitos de validación puntuales donde la reutilización no es una opción. También da como resultado un código ligeramente más simple. Por lo tanto, sería mi elección para una serie de escenarios. Desafortunadamente, no veo una manera fácil de implementar la validación del lado del cliente usando este método.

Entonces, la pregunta es ¿qué me estoy perdiendo y cómo se obtiene la validación de JS cuando se utiliza IValidatableObject?


Como no recibí una respuesta (válida) aquí, pregunté a un par de personas de Microsoft y me confirmaron que no era posible.

Brad Wilson:

En este momento, solo los validadores de nivel de propiedad pueden emitir validación del lado del cliente (ya que se alinea mucho mejor con la idea de validación de entrada en la forma del navegador ... no hay un "modelo" para hablar, desde el punto de vista del navegador de vista).

Stuart Leeks:

No creo que pueda conectar la validación del cliente con IValidatableObject


Este article describe una forma de acceder al objeto contenedor en la validación del lado del cliente en ASP.NET MVC. Puede usarlo de manera probal para comenzar a usar su propia validación del lado del cliente


http://weblogs.asp.net/scottgu/archive/2010/07/27/introducing-asp-net-mvc-3-preview-1.aspx http://blogs.msdn.com/b/stuartleeks/archive /2010/07/28/asp-net-mvc-adding-client-side-validation-to-validatepasswordlengthattribute-in-asp-net-mvc-3-preview-1.aspx

ASP.NET MVC 3 ahora cumple con la interfaz IValidateObject cuando se vincula el modelo (además de todos los otros enfoques de validación que ya admite con MVC 2), recupera errores de validación y marca / resalta automáticamente los campos impactados dentro de una vista usando el ayudantes incorporados del formulario del HTML

ASP.NET MVC 3 también presenta una nueva interfaz IClientValidatable que permite a ASP.NET MVC descubrir en tiempo de ejecución si un validador admite la validación del cliente. Esta interfaz ha sido diseñada para que se pueda integrar con una variedad de marcos de validación. MVC 3 también presenta una nueva interfaz IMetadataAware que simplifica la forma en que puede contribuir al proceso de creación de ModelMetadata.