Con MVC3 tiene dos nuevos mecanismos para agregar validación personalizada. Estos son (1) subclase ValidationAttribute o (2) implementa IValidatableObject.IValidatableObject en MVC3 - validación del lado del cliente
ValidationAttribute le permite agregar la validación del lado del cliente de manera relativamente simple al implementar IClientValidatable (y registrar 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é es lo que me falta y cómo se obtiene la validación de JS cuando se usa IValidatableObject?
¿Esto significa que no hay una manera fácil de enganchar una validación de JavaScript personalizada en la vista? Me gustaría tener una función simple que pueda conectar al mecanismo de validación existente del lado del cliente. – pauloya
[Publicación de un foro de ASP.NET] (http://forums.asp.net/post/5593598.aspx): * la validación de jquery actualmente solo valida los campos de entrada (sin validación de nivel de modelo), por lo que no existe un mapeo natural para la clase nivel de validación Una forma común de agregar la validación de nivel de modelo es agregar un campo oculto y asignar la validación de nivel de modelo a lo oculto. * Http://stackoverflow.com/a/5817958/11683 demuestra este enfoque, con la excepción de que el campo no está oculto. . – GSerg
Usar un atributo [Remoto] en el modelo podría ayudar; lea más aquí: http://msdn.microsoft.com/en-us/library/gg508808%28VS.98%29.aspx – Tohid