Cómo: Probar mediante programación la validez de controles de servidor ASP.NET
Actualización: noviembre 2007
Los controles de validación prueban la entrada del usuario, establecen un estado de error y producen mensajes de error. No cambian el flujo de procesamiento de la página (por ejemplo, no omiten el código si detectan un error en la entrada del usuario). En lugar de ello, pruebe el estado de los controles en el código antes de realizar la lógica específica de la aplicación. Si detecta un error, estará impidiendo que su propio código se ejecute: la página continuará el proceso y se devolverá al usuario con mensajes de error.
Nota de seguridad: |
---|
De manera predeterminada, las páginas Web ASP.NET comprueban automáticamente que ningún usuario con malas intenciones esté intentando enviar secuencias de comandos ni elementos HTML a la aplicación. Para obtener más información, vea Información general sobre los ataques mediante secuencias de comandos. |
Puede probar un estado general de toda la página y el estado de controles individuales. Normalmente, esto se hace en los controladores de eventos que crea para una página.
Para probar un estado de error general
En el código, pruebe la propiedad IsValid de la página. Esta propiedad recorre los valores de las propiedades IsValid de todos los controles de validación de la página (utilizando un operador AND lógico); si algún control de validación se establece como no válido, la propiedad de la página devolverá el valor de falso.
Nota: La información de validación no está disponible durante la fase de inicialización o carga de la página. Sin embargo, puede llamar manualmente al método Validate durante Page_Load y, a continuación, probar la propiedad IsValid de la página. Para obtener información detallada sobre estados de páginas, vea Información general sobre el ciclo de vida de una página ASP.NET.
En el siguiente ejemplo de código se muestra un controlador de eventos para un botón. El código prueba la propiedad IsValid de la página. Observe que no es necesario para una cláusula else, ya que la página volverá automáticamente al explorador y los controles de validación mostrarán sus propios mensajes de error.
Public Sub Button1_Click(ByVal sender As Object, _ ByVal e As System.EventArgs) _ Handles Button1.Click If Me.IsValid Then ' Perform database updates or other logic here End If End Sub
void Button1_Click(object sender, System.EventArgs e) { if (IsValid) { // Perform database updates or other logic here. } }
Para probar el estado de error de controles individuales
Recorra la colección Validators de la página, que contiene referencias a todos los controles de validación. A continuación, puede examinar la propiedad IsValid de cada control de validación.
Nota: Si desea realizar esta comprobación durante Page_Load, debe llamar manualmente primero al método Validate.
El ejemplo de código siguiente muestra cómo puede obtener el estado de controles de validación individuales.
If (Me.IsPostBack) Then Me.Validate() If (Not Me.IsValid) Then Dim msg As String ' Loop through all validation controls to see which ' generated the error(s). Dim oValidator As IValidator For Each oValidator In Validators If oValidator.IsValid = False Then msg = msg & "<br />" & oValidator.ErrorMessage End If Next Label1.Text = msg End If End If
if (this.IsPostBack) { this.Validate(); if (!this.IsValid) { string msg = ""; // Loop through all validation controls to see which // generated the errors. foreach (IValidator aValidator in this.Validators) { if (!aValidator.IsValid) { msg += "<br />" + aValidator.ErrorMessage; } } Label1.Text = msg; } }
Vea también
Tareas
Cómo: Validar mediante programación los controles de servidor ASP.NET
Referencia
Validar la información especificada por el usuario en páginas Web ASP.NET