Compartir a través de


Introducción a la validación de los datos proporcionados por el usuario en formularios Web Forms

Mediante los controles de validación se puede agregar validación de entrada a páginas de formularios Web Forms. Los controles de validación proporcionan un mecanismo fácil de usar para todos los tipos comunes de validación estándar (por ejemplo, probar fechas válidas o valores comprendidos en un intervalo), además de otras formas para proporcionar validación escrita personalizada. Además, los controles de validación permiten personalizar completamente cómo se muestra la información de errores al usuario.

Los controles de validación se pueden utilizar con cualquier control que se procese en un archivo de clase de página de formulario Web Forms, incluidos los controles de servidor Web y HTML. Para obtener más información, vea Introducción a los controles de servidor ASP.NET.

Nota de seguridad   De manera predeterminada, la página de formularios Web Forms comprueba que usuarios con malas intenciones no estén intentando enviar secuencias de comandos a la aplicación. Para obtener más información, vea Ataques mediante secuencias de comandos.

Utilizar controles de validación

Habilite la validación de la entrada del usuario agregando controles de validación al formulario como lo haría con otros controles de servidor. Existen controles para distintos tipos de validación, como la comprobación de un intervalo o la comparación de modelos. En el tema Tipos de validación para controles de servidor ASP.NET aparece una lista completa.

Cada control de validación hace referencia a un control de entrada (un control de servidor) situado en otra parte de la página. Cuando la entrada del usuario se está procesando (por ejemplo, cuando se envía el formulario), el marco de trabajo de la página ASP.NET pasa la entrada del usuario a los controles de validación apropiados. Los controles de validación prueban la entrada del usuario y establecen una propiedad para indicar si la entrada ha pasado la prueba. Después de haber llamado a todos los controles de validación, se establece una propiedad en la página; si alguno de los controles muestra que una comprobación de validación ha tenido errores, la página entera se define como no válida.

En su propio código puede probar el estado de la página y de los controles individuales. Por ejemplo, podría probar el estado de los controles de validación antes de actualizar un registro de datos con información introducida por el usuario. Si se detecta un estado no válido, se omite la actualización. Normalmente, si una comprobación de validación tiene errores, se omite todo el procesamiento y se devuelve la página al usuario. Los controles de validación que detectan errores generan un mensaje de error que aparece en la página.

Cuándo se produce la validación

La validación se produce después de la inicialización de la página (es decir, después de que el estado de vista y los datos devueltos se hayan procesado) pero antes de llamar a los controladores de eventos Change o Click.

Puede realizar antes el procedimiento de validación llamando al método Validate del control, por ejemplo durante la carga de páginas. Para obtener más información, vea Validar mediante programación los controles de servidor ASP.NET.

Validación de múltiples condiciones

En general, cada control de validación sólo ejecuta una prueba. No obstante, a menudo se desean comprobar múltiples condiciones. Por ejemplo, supongamos que desea establecer que un campo necesario esté limitado a aceptar fechas dentro de un intervalo especificado.

En los formularios puede asociarse más de un control de validación a cada campo de entrada. En ese caso, las pruebas realizadas por los controles se resuelven utilizando un operador AND lógico. Los datos introducidos por el usuario deben superar todas las pruebas para que se consideren válidos.

En algunos casos podrían ser válidas entradas en varios formatos distintos. Por ejemplo, si lo que se solicita es un número de teléfono, puede permitirse a los usuarios que escriban un número local, regional o internacional. Esta situación surge principalmente cuando comprueba un modelo específico de números o caracteres. Para ejecutar este tipo de prueba (un OR lógico), utilice el control de validación de coincidencia de modelos y especifique varios modelos válidos en el control El uso de varios controles de validación podría no funcionar en este caso porque se prueban con un operador AND lógico.

Mostrar información de error

Normalmente, los controles de validación no son visibles en el formulario representado. No obstante, si el control detecta un error, produce el texto de mensaje de error que especifique. El mensaje de error se puede mostrar de formas diferentes, como se indica en la tabla siguiente.

Opción de presentación Descripción
En contexto Cada control de validación puede mostrar individualmente un mensaje de error o un glifo en contexto (normalmente al lado del control donde se ha producido el error).
Resumen Los errores de validación pueden recopilarse y mostrarse en un lugar, por ejemplo, en la parte superior de la página. Esta estrategia se utiliza a menudo junto con la presentación de un glifo al lado de los campos de entrada con errores. Si el usuario trabaja con Internet Explorer 4.0 o posterior, el resumen puede mostrarse en un cuadro de mensaje.
En contexto y en un resumen El mensaje de error puede ser diferente en el resumen y en contexto. Puede utilizar esta opción para mostrar un mensaje de error más corto en contexto y más detallado en el resumen, o para mostrar un glifo de error al lado del campo de entrada y un mensaje de error en el resumen.
Personalizar Puede crear una presentación personalizada de un error capturando la información de error y diseñando su propio resultado.

Si utiliza las opciones de presentación en contexto o en un resumen, puede dar formato al texto del mensaje de error mediante HTML.

Nota de seguridad   Si crea mensajes de error personalizados, asegúrese de que no muestra información que pudiera ayudar a un usuario malintencionado a poner en peligro la aplicación. Para obtener más información, vea Mostrar mensajes de error seguros.

Validación en el cliente y en el servidor

Los controles de validación ejecutan la comprobación de entrada en código del servidor. Cuando el usuario envía un formulario al servidor, los controles de validación se invocan para revisar la entrada del usuario, control a control. Si se ha producido un error en uno de los controles de entrada, la misma página se establece en un estado no válido por lo que se puede probar la validez antes de ejecutar el código.

Si el usuario trabaja con un explorador que admite DHTML, los controles de validación también podrán ejecutar la validación mediante una secuencia de comandos de cliente. Esto puede mejorar sustancialmente el tiempo de respuesta en la página; los errores se detectan inmediatamente y los mensajes de error se muestran en cuanto el usuario abandona el control que contiene el error. Si la validación está disponible en el cliente, tiene más control sobre la presentación de los mensajes de error y puede mostrar un resumen de errores en un cuadro de mensaje. Para obtener más información, vea Validación en el cliente para controles de servidor ASP.NET.

El marco de trabajo de la página ejecuta una validación en el servidor aunque los controles de validación la hayan ejecutado en el cliente, por lo que puede probar la validez en los controles de eventos basados en el servidor. Además, ayuda a evitar que los usuarios puedan omitir la validación deshabilitando o cambiando la secuencia de comandos del cliente.

Modelo de objetos de validación

Mediante el modelo de objetos expuesto por los controles de validación individuales y por la página puede interactuar con los controles de validación. Cada control de validación expone su propia propiedad IsValid que puede probar para ver si se ha pasado o ha tenido errores la prueba de validación en ese control.

En la página se obtiene acceso a otra propiedad de página IsValid que resume el estado IsValid de todos los controles de validación de la página. Esta propiedad facilita realizar una prueba rápida para ver si puede ejecutar con seguridad su propio procesamiento.

La página también expone una colección Validators que contiene una lista de todos los controles de validación de la página. Puede recorrer esta colección para examinar el estado de controles de validación individuales.

Nota   En el modelo de objetos para la validación en el cliente hay unas pocas diferencias. Para obtener más información, vea Validación en el cliente para controles de servidor ASP.NET.

Validación personalizada

Puede personalizar el proceso de validación de varias maneras:

  • Tiene control completo sobre el formato, el texto y la ubicación de los mensajes de error y puede especificar si aparecen individualmente o en un resumen.
  • Puede crear una validación personalizada mediante un control especial. El control llama a su lógica, pero, si no lo hace, funciona de la misma manera que otros controles de validación al establecer el estado de error, mostrar los mensajes de error, etc. Esto proporciona una forma fácil de crear una lógica de validación personalizada, pero participando en el marco de trabajo de validación de la página.
  • Si ha especificado una validación en el cliente, puede interceptar la llamada a la validación y sustituir o agregar su propia lógica de validación.

Validar mediante programación

De forma predeterminada, los controles de validación ejecutan sus comprobaciones cuando se procesan los eventos Click. No obstante, puede ejecutar la validación en cualquier momento en el código llamando al método Validate del control de validación. Llamar a este método permite evaluar la validez de la configuración de la propiedad realizada mediante programación. Por ejemplo, se pueden obtener datos de un usuario con un método distinto de una página de formularios Web Forms y, a continuación, establecer las propiedades de los controles del servidor mediante programación.

Para obtener más información, vea Validar mediante programación los controles de servidor ASP.NET.

Vea también

Validación de formularios Web Forms | Tutorial: Validar los datos introducidos por el usuario en una página de formularios Web Forms