Saltarse las validaciones del lado cliente en ASP.NET MVC

Las validaciones automáticas de ASP.NET MVC son una fórmula muy útil y productiva de comprobar los datos introducidos por nuestros usuarios. Como sabemos, basta decorar las propiedades de las entidades del Modelo con atributos que indiquen las restricciones a aplicar en cada caso, y el framework MVC se encargará del resto, incluso en la capa cliente.

Como sabemos, el sistema de validación es capaz de generar scripts capaces de comprobar en cliente que los datos introducidos encajan con las restricciones introducidas en el modelo mediante anotaciones de datos.

Básicamente, el script comprueba los datos durante la pérdida de foco de los controles, y justo antes de realizar el submit de datos al servidor, no permitiendo el envío hasta que los campos contengan información correcta. Este automatismo, válido y conveniente la mayor parte de las veces, complica algunos escenarios.

Mirando el código del script MicrosoftMvcValidation.js he descubierto un pequeño truco para poder enviar los datos de un formulario omitiendo las validaciones en cliente, es decir, forzar el submit sean cuales sean los datos introducidos en los controles.

La cuestión está en indicar en el botón de envío que no debe realizar las validaciones, estableciéndole una propiedad llamada disableValidation. A lo bestia, bastaría con añadirle el atributo al botón como se muestra en el siguiente código:

disableValidation

De esta forma, en la pulsación del botón “atrás” (en este caso se trata de un asistente) se saltaría los controles en cliente y podríamos volver al paso anterior.

Obviamente con el método anterior estaríamos introduciendo marcado incorrecto en la página. Si queremos pasar las validaciones W3C podemos conseguir lo mismo desde script, lo que haría innecesaria la aparición del atributo disableValidation en el tag <button>:

<script type="text/javascript">
    document.getElementById("atras").disableValidation = true;
</script>

Publicado en: Variable not found

3 comentarios en “Saltarse las validaciones del lado cliente en ASP.NET MVC”

  1. Hola, Alfonso!

    El código de validación en cliente puede ser muy fácilmente evitado, no en MVC, sino en todas las tecnologías de desarrollo para la web. Por esta razón, SIEMPRE hay que validar en servidor.

    Las validaciones en cliente son simplemente un complemento útil que facilita la vida al usuario, pues puede conocer si los datos son correctos o no sin necesidad de recargar la página, pero nunca deben ser utilizadas como único mecanismo de comprobación.

    Saludos & gracias por comentar!

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *