Do you use MVC Unobtrusive Validation?

Updated by Brady Stroud [SSW] 1 year ago. See history

123
<introEmbed body={<> 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?

Image

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

Image

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
Image

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

Image

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.

Image

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

Acknowledgements

Brendan Richards
Related rules

Need help?

SSW Consulting has over 30 years of experience developing awesome software solutions.

We open source.Loving SSW Rules? Star us on GitHub. Star