Klávesové zkratky na tomto webu - rozšířené Na obsah stránky

Validace v NForms pro ASP.NET

| ASP.NET 2.0

Oproti původnímu očekávání, jsem za uplynulý týden na NForms skoro nešáhl. Chtělo by se říci naštěstí, protože jsem se věnoval jiným aktivitám, nepočítačovým. :) Ale asi z toho bude zpáteční projekt. Po týdnu jsem to tedy znovu otevřel a včera dopsal získávání hodnot formuláře a na dnešek zbylo začít validační vrstvu.

Validaci jsem započal jednoduchým pravidlem PredicateRule. Otázka je, jestli je to dobrý krok. Proto vlastně tento spot píšu. :) Predikátová pravidla vznikají zápisem lambda výrazů, což je sám o sobě mocný nástroj a dalo by se s ním hodně vyhrát. Ovšem naráží to pár překážek. Například typovost hodnot formulářových prvků.

Když jsem psal tu část NForms, která získává poslaná data, vytvořil jsem generickou metodu GetValue<T>(Converter<string,T>). Tato metoda získá hodnotu v požadovaném typu. Pro převod na základní datové typy z textového řetězce se dají použít předpřipravené metody třídy `System.Convert `, pro vlastní struktury stačí předat delegát na vlastní converter a mělo by to fungovat… Jenže jak se validátor dozví, jaký typ zvolit?

Znamená to asi jediné, musím napsat ještě generické ekvivalenty formulářových prvků. Na jednu stranu to znamená docela víc práce, než jsem čekal :) a na druhou mnohem větší komfort při tvorbě formulářů a validačních pravidel. Díky tomu, že je celý framework určen pro verzi 3.5, můžu využít lambda výrazy ke generování JScriptových pravidel. Tedy doufám, že to půjde. Validační kód by pak mohl vypadat nějak tak:

Form.AddRule("age", age => age > 18, "Uživatel musí být plnoletý");

Co myslíte? Mám se vydat touto cestou, nebo je to moc odvážné? :)

Tagy: , ,

Našli jste v článku chybu? Máte námět na reportáž? Založte mi ticket.