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.
![]() |
---|
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