Resultados de la validación de casos especiales para controles de servidor ASP.NET

Actualización: noviembre 2007

La validación garantiza que lo que el usuario ha escrito cumple el criterio especificado. En la mayoría de los casos, es una operación sencilla. No obstante, a veces las situaciones bajo las que se valida la entrada presenta condiciones especiales. Es importante que comprenda cuáles son estas condiciones, cómo se realiza la validación y cuál puede ser el resultado de un intento de validación.

Comparar con campos en blanco

Todos los controles de validación excepto el control RequiredFieldValidator consideran que si un campo está en blanco es válido. Debe utilizar el control RequiredFieldValidator para impedir que los usuarios dejen los campos en blanco. Por ejemplo, si asocia un control RangeValidator a un campo de fecha, pasará la validación si el usuario escribe una fecha en el intervalo especificado o si el campo se deja en blanco. Si desea asegurarse de que el usuario escribe una fecha, debe agregar un control RequiredFieldValidator al campo de fecha junto con la comprobación del intervalo.

Comparar con otro control

Cuando se utiliza el control CompareValidator, se puede especificar que la validación se realice con respecto al valor de otro control. Por ejemplo, podría tener dos campos para escribir fechas, una inicial y otra final. Con el uso de controles CompareValidator, puede asegurarse de que la fecha de inicio es anterior o igual a la fecha de finalización.

Nota de seguridad:

Los datos proporcionados por el usuario en una página Web ASP.NET podrían incluir secuencias de comandos de cliente malintencionadas. De forma predeterminada, la página valida los datos escritos por el usuario para comprobar que no incluyen secuencias de comandos ni elementos HTML. Para obtener más información, vea Información general sobre los ataques mediante secuencias de comandos.

Si los controles de validación no pueden resolver el valor del otro control, no provocan un error; en lugar de ello, se pasa la comprobación de validación. Esto se produce si falta el valor del otro control o si no se puede convertir al tipo de datos del control CompareValidator.

Las pruebas específicas realizadas por estos controles, y los resultados posibles, son:

  • Si el control de destino especificado en la propiedad ControlToValidate del control de origen no posee ningún valor, la propiedad IsValid se considera true y supera la validación.

  • Si el valor del control de destino de la propiedad ControlToValidate no se puede convertir al tipo de datos adecuado, IsValid se considera false.

  • Si el valor del control de destino de la propiedad ControlToCompare no se puede convertir al tipo de datos adecuado, IsValid se considera true.

  • Finalmente, si se han superado todas estas pruebas, los controles no estarán vacíos y se podrán convertir al tipo de datos, de modo que el control realiza la comparación real y establece IsValid de modo adecuado.

Esta estrategia evita que se notifiquen varios errores para la misma entrada no válida. Los controles de validación están diseñados para comprobar y notificar sólo un valor y para poder mostrar un mensaje exacto cuando se encuentra un error.

Por ejemplo, en el ejemplo de la fecha final, imagine que el usuario escribe una fecha inicial no válida. A continuación, el usuario escribe una fecha final. Cuando se realiza la comprobación de validación (normalmente en el servidor), la misma fecha errónea podría provocar un error en la fecha inicial y la fecha final. Para evitar que esto suceda, la validación de la fecha final (dependiente de otro campo) no provoca un error.

Por tanto, podría asegurarse de que proporciona la validación suficiente para cada campo individual. En este ejemplo, podría decidir asegurarse de que el usuario ha escrito una fecha correcta en el campo de fecha inicial. En muchos casos, debería incluir un control RequiredFieldValidator además del control de validación que prueba el contenido de una entrada específica. También resulta de utilidad en algunos casos agregar un control CompareValidator con su propiedad Operator establecida en DataTypeCheck que realiza una comprobación de tipo sin realizar una comparación con ningún otro valor o control.

Vea también

Conceptos

Tipos de validación para controles de servidor ASP.NET

Otros recursos

Controles de validación ASP.NET