SSW Foursquare

Do you use MVC Unobtrusive Validation?

Last updated by Brady Stroud [SSW] 8 months ago.See history

Validation is an important part of any data-driven web application. Client-Side validation provides fast user feedback and a better UI experience but cannot be relied on for data integrity - so client-side validation should always be backed by additional server-side validation.

With MVC Unobtrusive Validation, you can configure both client-side and server-side in one place.

Validation rules can be added to a model object via Data Annotations or using the Fluent Validation API.

Fluent Validation is available as a Nuget package. See Do you use Fluent Validation?

DataAttributes
Figure: OK Example - Data Annotation attributes decorate model properties to make them required

FluentValidation
Figure: Better Example - Fluent Validation allows validation metadata to be added to a class without modifying the original class. This provides much more flexibility for code reuse

If you create a new MVC web application in VisualStudio 2013, unobtrusive validation will be enabled by default. Otherwise, it's simple to install from Nuget. To use it simply:

  1. Bind your razor views to model objects
  2. Use Html Helpers to render the form UI

view
Figure: Good Example - this razor view binds to a strongly typed model object and uses HTML helpers.

Html
Figure: the HTML UI rendered for this view now has data-validation attributes that are followed by JQuery validation to provide rich client-side validation.

SaveAction
Figure: On the server-side, the same validation rules will be checked when you call ModelState.IsValid


Brendan Richards
We open source.Loving SSW Rules? Star us on GitHub. Star
Stand by... we're migrating this site to TinaCMS