Work with DataAnnotation in ASP.NET MVC


MVC provides an interesting facility to use namespace to deal with different validations which plays a very important part in building successful projects by making them more effective and efficient as it allows user to customize the entities and to apply restrictions on any field by defining the range or the required value.

To show the use of DataAnnotation Validations

To do so in ASP.NET MVC, first develop a sample application as I have used a application of choosing software to download it which contain various fields to get filled first than only user can download the required software and the fields contain various restriction like:

  • Software name must be less than 5 characters
  • Version range should be in between 1 to 5
  • Company name should be entered

Various steps are required to do so, as are follows:

Step 1: Open Visual Studio 2010 so as to develop a new application >new>project

a.gif

Step 2: Now choose ASP.NET MVC empty web application from the installed template along with it give the name to the new application as in this example name given to the application is Dvalidations after that click on OK.

b.gif

Step 3: Now add the Model class first by right click on model > choose add > new >class and then manipulate the code according to the requirement as we are working on validations hence for that purpose user have to add  System.ComponentModel.DataAnnotations to assembly so that we can use them as reference.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.ComponentModel.DataAnnotations;
namespace Dvalidations.Models
{
    public class DV
    {
       [Required(ErrorMessage = "Enter the Name of the Software")]
       [StringLength(5,ErrorMessage="Doesn't exist")]
       public string Software
       {
           get; set;
       }
       [Range(1,5,ErrorMessage = "invalid version")]
       public int Version
       {
          get; set;
       }
        public bool Agree
       {
          get; set;
       }
       [Required(ErrorMessage = "Company Name Required")]
       public string Company
       {
           get; set;
       }
       [Required(ErrorMessage = "Enter ur Email")]
       public string Email
       {
           get; set;
       }
       public bool RuActive
       {
           get; set;
       }
    }
}

Step 4: Next step will be to add a new controller:

  •  By right clicking on the controller folder > add controller > give name to controller

c.gif

Now manipulate the code of controller to control the model class and then add a view to it.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using Dvalidations.Models;
namespace Dvalidations.Controllers
{
    public class PCController : Controller
   {
        //
        // GET: /PC/Index
        public ActionResult Index()
        {
            DV pacific = new DV();
            return View(pacific);
        }
        [HttpPost]
        public ActionResult Index(DV pacific)
        {
          if(!ModelState.IsValid)
            return View(pacific);
          return View("Success");
           }     
     }
}

Step 5: Last and final step is to add view to the action method.

  • Right click on action method

  • Give name to the view

  • Choose the data class and click on add

v.gif

Now manipulate the view.aspx as per requirement:

<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<Dvalidations.Models.DV>" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title></title
>
</head>
<
body>
    <div>
<h2>Choose Software</h2>
<%= Html.ValidationSummary("PLz Try Again")%>
<% using (Html.BeginForm()) {%>
<fieldset>
<
p>
<
label for="Software">Software:</label>
<%= Html.TextBox("Software") %>
<%= Html.ValidationMessage("Software","*") %>
</p> 
<p>
<
label for="Version">Version:</label>
<%= Html.TextBox("Version") %>
<%= Html.ValidationMessage("Version","*") %>
</p>
<
p>
<
label for="Agree">Agree:</label>
<%= Html.CheckBox("Agree") %>
<%= Html.ValidationMessage("Agree","*") %>
</p>
<
p>
<
label for="Company">Company:</label>
<%= Html.TextBox("Company") %>
<%= Html.ValidationMessage("Company","*") %>
</p>
<
p>
<
label for="Email">Email:</label>
<%= Html.TextBox("Email") %>
<%= Html.ValidationMessage("Email","*") %>
</p>
<
p>
<
label for="RuActive">RuActive:</label>
<%= Html.CheckBox("RuActive") %>
<%= Html.ValidationMessage("RuActive","*") %>
</p>
<
p>
<
input type= "submit" value="Done"/>
</p>
</
fieldset>
<% } %>
</div
>
</body>
</
html>

After adding the view you can run the application by pressing F5 and can see the effects of DataAnnotation validations.

Screenshot 1: When all fields are filled correctly as per requirements.

2.gif

Screenshot 2: When filled fields violates the restriction applied on them:

3.gif

  • As software is restricted to five characters
  • Version range is from 1 to 5
  • Company name left blank


Similar Articles