Thomas Bandt

Über mich | Kontakt | Archiv

Formular-Validierung in ASP.NET 2.0

In ASP.NET 2.0 gibt es ja ein göttliches neues Feature, genauer ne Property aller mit Validierung in Zusammenhang stehender Controls, genannt ValidationGroup.

Damit lassen sich diverse Controls gruppieren, und so auch eine Validierung für "mehrere Formulare" auf einem Webform realisieren. In früheren Versionen musste für soetwas immer auf serverseitige Validierung zurückgegriffen werden, da nur dort eine Unterscheidung möglich war, siehe "Validierung". Nun kann man also das clientseitige Validieren benutzen. Das funktioniert tadellos, sogar im Firefox.

Was ist jetzt aber, wenn ein Benutzer kein JavaScript erlaubt?

"Dann hat er Pech", würden viele sagen ... aber das ist Quatsch. Eine Website sollte soweit möglich auch ohne JavaScript & Co. funktionieren. Also habe ich es ausprobiert. Ergebnis: es wird nichts validiert ...

Das heißt: die Engine erkennt nicht, ob JS enabled ist oder nicht, man muss also nach wie vor in der vom Formular zur Auswertung aufgerufenen Methode selbst hand anlegen:

protected void Send(object sender, EventArgs e)
{
   Page.Validate("ModulKontaktformular");
   if (Page.IsValid)
   {
   }
}

Das ist jetzt eine Beispielmethode Send, die für das Verschicken einer E-Mail in einem Kontaktformular benutzt wird. Im Prinzip nix Neues, kennt man alles schon aus 1.1.

Aber: Page.Validate() kann man nun überladen und der Methode den Namen der ValidationGroup mitgeben. Das ist notwendig, um die oben erwähnte Unterscheidung zw. den verschiedenen "Formularen" zu bekommen ... ich dachte anfangs schon sie hätten es vergessen, aber nein, hier haben die Entwickler des Frameworks mitgedacht ;-)

Kommentare

  1. Hannes Preishuber schrieb am Mittwoch, 24. August 2005 08:28:00 Uhr:

    soweit ich mich erinnere wird validate automatsich ausgeführt
    es sollt also reichen auf isvalid zu prüfen
  2. Thomas schrieb am Mittwoch, 24. August 2005 09:33:00 Uhr:

    Okay, das habe ich nicht überprüft - aber man kann sich auf jeden Fall nicht darauf verlassen, dass die Validierung, gesetzt dem Fall der User hat JS nicht erlaubt, automatisch serverseitig ausgeführt wird - das finde ich halt etwas schwach.
  3. Thomas schrieb am Mittwoch, 24. August 2005 11:33:00 Uhr:

    Revision: es reicht nicht, denn man muss ja die ValidationGroup mitgeben.


« Zurück  |  Weiter »