De standaard validatie in MVC 2 gaat er vanuit dat je werkt met 'Validation
messages' achter je tekstvelden, en een 'Validation summary'
bovenaan je scherm. Dit werkt snel en out-of-the box, inclusief javascript
validatie via jQuery Validate, en ook server side wanneer er geen javascript
beschikbaar is (pic via).
Maar... wat als je UX-afdeling dit spuuglelijk vindt? Vandaar dat we bovenstaande
gaan transformeren naar:
Zo veel mogelijk standaard Om ervoor te zorgen dat we zo min mogelijk werk doen, conformeren we aan
het model dat MVC afdwingt met annotations op je velden:
Wanneer we nu in de view hier een textbox voor tekenen krijgen we er extra
gratis validatie bij:
Punt is alleen dat onze classes voor niet geldige velden niet op
de textbox zitten maar op een veld eromheen:
HTML Helper voor de wrapper De wrapper om het veld heen kunnen we uiteraard ook genereren, en daarbij
meteen de metadata over de correctheid van het veld meenemen. Dat kan door
middel van iets als:
Maar dat is vrij foutgevoelig! Tijd voor een trucje met 'IDisposable':
We kunnen nu in de constructor van het wrapper element de begin tag schrijven,
en in de 'Dispose' de eindtag.
Validation summary Bovenaan moet ook nog een validation summary komen te staan. Ook hier
kunnen we weer handig gebruik maken van de ModelState functies die beschikbaar
zijn in de HtmlHelpers:
Validatie in de controller Om te zorgen dat de error-messages ook daadwerkelijk te zien worden wanneer
je submit zal je nog een check moeten toevoegen in je action:
Client side validatie Dit werkt prima, maar alleen server-side. Voor client-side validatie laat
ik de volgende keer zien hoe je eenvoudig ASP.NET MVC 2 kan koppelen aan
een (eigen) validatie-framework in javascript.
There are 10 comments on this article, read them on
Coding Glamour.