Validación en el cliente para controles de servidor ASP.NET
Actualización: noviembre 2007
Si el usuario trabaja con un explorador que admite HTML dinámico (DHTML), los controles de validación ASP.NET podrán ejecutar la validación mediante una secuencia de comandos de cliente. Debido a que los controles pueden proporcionar una respuesta inmediata sin una acción de ida y vuelta al servidor, se mejora el trabajo del usuario con la página.
En la mayoría de los casos, no tiene que realizar cambios en la página ni en los controles de validación para utilizar la validación en el cliente. Los controles detectan automáticamente si el explorador admite DHTML y ejecutan su comprobación consecuentemente. La validación en el cliente utiliza el mismo mecanismo para mostrar el error que la validación en el servidor.
Nota de seguridad: |
---|
La validación se realiza en el servidor aunque ya se haya llevado a cabo en el cliente. Esto permite determinar el estado de la validación en el código del servidor y proporciona seguridad contra la omisión de la validación por el usuario. |
Diferencias en la validación en el cliente
Si la validación se realiza en el cliente, los controles de validación incluyen algunas características adicionales:
Si está resumiendo los mensajes de error de validación, puede mostrarlos en un cuadro de mensaje que aparece cuando el usuario envía la página. Para obtener información detallada, vea Cómo: Controlar la presentación de los mensajes de error de validación para los controles de servidor ASP.NET.
El modelo de objetos para controles de validación es ligeramente diferente en el cliente. Vea más adelante el apartado Modelo de objetos de validación en el cliente de este tema.
Existen unas pocas diferencias asociadas con la validación en el cliente:
Si la validación en el cliente está habilitada, la página incluye referencias a bibliotecas de secuencias de comandos que se utilizan para ejecutar la validación en el cliente.
Cuando utiliza un control RegularExpressionValidator, las expresiones se pueden comprobar en el cliente si hay disponible un lenguaje compatible con ECMAScript (como Microsoft JScript). Las expresiones regulares del lado cliente difieren en detalles pequeños de comprobación de la expresión regular realizada en el servidor mediante la clase Regex.
La página incluye un método en el cliente para interceptar y controlar el evento Click antes de que se envíe la página.
Modelo de objetos de validación en el cliente
Los controles de validación presentan casi el mismo modelo de objetos en el cliente que en el servidor. Por ejemplo, puede probar la validación leyendo la propiedad IsValid del control de validación de la misma forma en el cliente y en el servidor.
No obstante, existen diferencias en la información de validación expuesta en la página. En el servidor, la página admite propiedades; en el cliente, contiene variables globales. La tabla siguiente compara la información expuesta en la página.
Variable de la página del cliente |
Propiedad de la página del servidor |
---|---|
Page_IsValid |
IsValid |
Page_Validators (matriz) Contiene referencias a todos los controles de validación de la página. |
Validators (colección) Contiene referencias a todos los controles de validación. |
Page_ValidationActive Valor booleano que indica si debería tener lugar la validación. Establezca esta variable en false para deshabilitar mediante programación la validación en el cliente. |
(no hay equivalente) |
Nota: |
---|
Toda la información relacionada con la página se debería considerar de sólo lectura. |
Enviar páginas con errores de validación en el cliente
En algunas instancias, podría preferir no utilizar la validación del lado cliente y utilizar sólo la validación del lado servidor, aun cuando la validación en el cliente está disponible. Por ejemplo, podría no ser posible realizar la validación en el cliente si la validación requiere información o recursos que sólo están disponibles en el servidor, como un acceso a una base de datos.
De forma predeterminada, cuando se ejecuta la validación en el cliente, el usuario no puede enviar la página al servidor si existen errores en la página. No obstante, es posible que encuentre necesario permitir al usuario que envíe la página con errores. Por ejemplo, puede tener un botón Cancelar o un botón de desplazamiento en una página y desear que el botón envíe la página aunque algunos controles no superen la validación. Para obtener más información, vea Cómo: Deshabilitar la validación para controles de servidor ASP.NET.
Vea también
Conceptos
Tipos de validación para controles de servidor ASP.NET