Freigeben über


Validierungsergebnisse für ASP.NET-Serversteuerelemente in Sonderfällen

Aktualisiert: November 2007

Die Validierung stellt sicher, dass die Eingabe des Benutzers die von Ihnen angegebenen Kriterien erfüllt. In den meisten Fällen ist dies eine einfache Operation. Manchmal unterliegt die Eingabevalidierung jedoch besonderen Bedingungen. Sie müssen unbedingt verstehen, um welche Bedingungen es sich handelt, wie die Validierung durchgeführt wird und welche Ergebnisse aus dem Validierungsversuch resultieren können.

Vergleich mit leeren Feldern

Alle Validierungssteuerelemente – mit Ausnahme des RequiredFieldValidator-Steuerelements – werten ein Feld als gültig, wenn es leer ist. Sie müssen das RequiredFieldValidator-Steuerelement verwenden, um das Ausfüllen eines Felds für den Benutzer obligatorisch zu machen. Wenn Sie z. B. ein RangeValidator-Steuerelement mit einem Datumsfeld verknüpfen, gilt die Validierung als bestanden, wenn der Benutzer ein Datum im angegebenen Bereich eingibt oder das Feld leer lässt. Um sicherzustellen, dass der Benutzer ein Datum eingibt, müssen Sie dem Datumsfeld zusammen mit der Bereichsprüfung ein RequiredFieldValidator-Steuerelement hinzufügen.

Vergleich mit anderem Steuerelement

Wenn Sie mit dem CompareValidator-Steuerelement arbeiten, können Sie angeben, dass die Validierung anhand des Werts eines anderen Steuerelements ausgeführt wird. Angenommen, Sie haben zwei Datumseingabefelder, eines für das Anfangsdatum und eines für das Enddatum. Mit einem CompareValidator-Steuerelement können Sie sicherstellen, dass das Startdatum vor dem Enddatum liegt oder mit ihm zusammenfällt.

Sicherheitshinweis:

Benutzereingaben auf einer ASP.NET-Webseite können möglicherweise schädliche Clientskripts enthalten. Von der Seite wird standardmäßig sichergestellt, dass die Benutzereingabe weder Skripts noch HTML-Elemente enthält. Weitere Informationen finden Sie unter Übersicht über Skriptangriffe.

Wenn die Validierungssteuerelemente den Wert im anderen Steuerelement nicht auflösen können, wird kein Fehler ausgelöst. Stattdessen gilt die Validierung als bestanden. Dies ist der Fall, wenn der Wert im anderen Steuerelement fehlt oder nicht in den Datentyp des CompareValidator-Steuerelements konvertiert werden kann.

Im Folgenden sind die von diesen Steuerelementen durchgeführten speziellen Tests und deren Ergebnisse aufgeführt:

  • Wenn das Zielsteuerelement, das in die ControlToValidate-Eigenschaft des ursprünglichen Steuerelements eingefügt wurde, keinen Wert aufweist, wird für die IsValid-Eigenschaft der Wert true angenommen, und die Validierung gilt als bestanden.

  • Wenn der Wert des Zielsteuerelements in der ControlToValidate-Eigenschaft nicht in den entsprechenden Datentyp konvertiert werden kann, wird für IsValid der Wert false angenommen.

  • Wenn der Wert des Zielsteuerelements in der ControlToCompare-Eigenschaft nicht in den entsprechenden Datentyp konvertiert werden kann, wird für IsValid der Wert true angenommen.

  • Wenn alle Tests erfolgreich bestanden wurden, sind beide Steuerelemente nicht leer und können in den Datentyp konvertiert werden. Das Steuerelement kann dann den eigentlichen Vergleich durchführen und IsValid entsprechend festlegen.

Diese Strategie verhindert, dass eine ungültige Eingabe mehrmals gemeldet wird. Validierungssteuerelemente sind zum Testen und Melden eines einzigen Werts konzipiert und können bei Auftreten eines Fehlers eine möglichst präzise Meldung anzeigen.

Stellen Sie sich vor, der Benutzer gibt in dem Beispiel mit dem Enddatum ein ungültiges Anfangsdatum ein. Der Benutzer gibt anschließend ein Enddatum ein. Wenn die Validierung (im Allgemeinen auf dem Server) durchgeführt wird, könnte dasselbe ungültige Datum möglicherweise einen Fehler für das Anfangsdatum und für das Enddatum auslösen. Um dies zu verhindern, löst die Validierung des Enddatums – die von einem anderen Feld abhängige Validierung – keinen Fehler aus.

Sie sollten daher sicherstellen, dass Sie für jedes Feld eine ausreichende Validierung bereitstellen. Im Beispiel müssten Sie gewährleisten, dass der Benutzer das richtige Datum in das Feld für das Anfangsdatum eingibt. In vielen Fällen müssen Sie zusätzlich zu einem Validierungssteuerelement, das den Inhalt eines bestimmten Eintrags überprüft, ein RequiredFieldValidator-Steuerelement hinzufügen. Manchmal ist es auch sinnvoll, ein CompareValidator-Steuerelement hinzuzufügen, dessen Operator-Eigenschaft auf DataTypeCheck festgelegt ist. Dadurch wird eine einfache Typüberprüfung ohne Vergleich mit einem anderen Wert oder Steuerelement durchgeführt.

Siehe auch

Konzepte

Arten der Validierung für ASP.NET-Serversteuerelemente

Weitere Ressourcen

ASP.NET-Validierungssteuerelemente