Validation is one of the most important aspects of an application. ASP.NET MVC framework provides multiple ways to validate the user input. In this article we are going to demonstrate how to perform validation in an ASP.NET application using Controller action, IDataErrorInfo and DataAnnotations methods.
Simple Validation:
The most simple way to perform validation is to perform it inside the Controller. The controller will be responsible for checking for the validity of the data. Let's check out the code for the view.
As, you can see the view is very simple and consists of FirstName and LastName TextBoxes. The submit button will submit the form and invoke the "SimpleValidation" action of the controller.
The controller used in this case is the HomeController. The SimpleValidation action is responsible for performing the validation on the data. The implementation of the SimpleValidation action is shown below:
The SimpleValidation action accepts the Customer object as an input parameter. This is performed by Model Binders feature in ASP.NET MVC framework. You can check out the article on Model Binders here.
Inside the SimpleValidation action the ModelState.AddModelError method is used to populate the error collection of the model. The ModelState.IsValid property represents if there are any errors in the model. If the model is invalid then we simply return the current view which in this case is "SimpleValidation". If the model is valid then we return the "Confirmation" view.
Finally, make the adjustments in the view to display the errors. This is performed by the HTML helpers ValidationMessage as shown below:
Now, run the above page and click on the "submit" page without inputting the values for the FirstName and LastName. You will realize that the page was not submitted successfully since it was invalid. You can even make the errors more visible by using the ValidationSummary HTML helper as shown below:
Validation Using IDataErrorInfo:
The second method of performing validation in an ASP.NET MVC application is by using the IDataErrorInfo class. This method involves the model class to inherit from the IDataErrorInfo interface. The implementation is shown below:
Using this method the controller action is simplified as the validation is now moved into the model itself. The implementation is shown below:
Using DataAnnotations:
The DataAnnotations provides the most easiest way to perform validation in an ASP.NET MVC application. It uses attributes to perform validation. The first thing you need to do is to download the DataAnnotations library. You can download it from here.
http://aspnet.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=24471
You need to download "Data Annotations Model Binder Sample". Once, it is downloaded you need to build the solution in Visual Studio which will create the "Microsoft.Web.Mvc.DataAnnotations" and System.ComponentModel.DataAnnotations" assemblies. The final step is to set the DataAnnotations default binder to the Microsoft.Web.Mvc.DataAnnotations.DataAnnotationsModelBinder(); in the Global.asax file as shown below:
Now, in order to use the validation you will simply use the attributes on the model properties as shown below:
Conclusion:
In this article we discussed several different ways to perform validation in an ASP.NET MVC application. Depending on the scenario you can choose the technique that fulfill your needs. In the next article we will discuss in detail how to create custom DataAnnotations.
[Download Sample]