Freigeben über


Gewusst wie: Programmgesteuertes Testen der Validierung für ASP.NET-Serversteuerelemente

Aktualisiert: November 2007

Validierungssteuerelemente überprüfen die Benutzereingabe, legen einen Fehlerstatus fest und erzeugen Fehlermeldungen. Sie ändern nichts am Ablauf der Seitenverarbeitung – so wird der Code z. B. nicht umgangen, wenn sie einen Fehler in der Benutzereingabe feststellen. Stattdessen testen Sie den Zustand der Steuerelemente im Code, bevor eine anwendungsspezifische Logik durchgeführt wird. Wenn Sie einen Fehler feststellen, wird eine Ausführung des Codes verhindert; die Seite wird weiter verarbeitet und mit Fehlermeldungen an den Benutzer zurückgegeben.

Sicherheitshinweis:

ASP.NET-Webseiten führen standardmäßig eine automatische Validierung durch, um zu verhindern, dass böswillige Benutzer Skripts oder HTML-Elemente an die Anwendung senden. Weitere Informationen finden Sie unter Übersicht über Skriptangriffe.

Sie können eine Überprüfung auf einen allgemeinen, seitenumfassenden Status vornehmen oder den Status einzelner Steuerelemente testen. In der Regel erfolgt dies in den Ereignishandlern, die für eine Seite erstellt werden.

So testen Sie auf einen allgemeinen Fehlerstatus

  • Testen Sie die IsValid-Eigenschaft der Seite im Code. Diese Eigenschaft führt einen Rollup (mit einem logischen AND) der IsValid-Eigenschaftenwerte aller Validierungssteuerelemente auf der Seite aus; wenn eines der Validierungssteuerelemente auf ungültig gesetzt ist, gibt die Eigenschaft der Seite false zurück.

    Hinweis:

    Beim Initialisieren oder Laden einer Seite sind keine Validierungsinformationen verfügbar. Sie können jedoch die Validate-Methode manuell während des Page_Load aufrufen und dann die IsValid-Eigenschaft der Seite testen. Ausführliche Informationen zu Seitenzuständen finden Sie unter Übersicht über den Lebenszyklus von ASP.NET-Seiten.

    Das folgende Codebeispiel zeigt den Ereignishandler für eine Schaltfläche. Mit dem Code wird die IsValid-Eigenschaft der Seite getestet. Beachten Sie, dass keine Else-Klausel benötigt wird, da die Seite automatisch an den Browser zurückgegeben wird und die Validierungssteuerelemente eigene Fehlermeldungen anzeigen.

    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.
        }
    }
    

So testen Sie auf den Fehlerstatus einzelner Steuerelemente

  • Durchlaufen Sie die Validators-Auflistung der Seite, die Verweise auf alle Validierungssteuerelemente enthält. Anschließend können Sie die IsValid-Eigenschaft der einzelnen Validierungssteuerelemente überprüfen.

    Hinweis:

    Wenn Sie diese Prüfung während des Page_Load durchführen möchten, müssen Sie zuerst manuell die Validate-Methode aufrufen.

    Das folgende Codebeispiel zeigt, wie Sie den Zustand einzelner Validierungssteuerelemente abrufen können.

    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;
        }
    }
    

Siehe auch

Aufgaben

Gewusst wie: Steuern der Anzeige von Validierungsfehlermeldungen für ASP.NET-Serversteuerelemente

Gewusst wie: Programmgesteuertes Validieren für ASP.NET-Serversteuerelemente

Referenz

Überprüfen der Benutzereingabe in ASP.NET-Webseiten