Required and StringLength Attribute

Required Attribute and StringLength Attribute in ASP.NET MVC

In this article, I am going to discuss Required Attribute and StringLength Attribute in ASP.NET MVC Application with some real time examples.

Please read Introduction of Data Annotation article before proceeding to this article as we are going to use the same example that we created in our previous article.

In our last article, we discuss the basics of data annotation attributes in ASP.NET MVC application. So let’s discuss the built-in Data annotation Attributes that are available in ASP.NET MVC for model validation one by one.

Note: Data annotations are the attributes that we can find in the System.ComponentModel.DataAnnotations namespace. These attributes provide Server-side validation as well as client-side validation.

Required Attribute:

let’s understand Required Attribute with one example.

Our business requirement is that the First name and Last Name of an employee can’t be empty. That means we will force the Employee to give the first name and last name; we can achieve this very easily in ASP.NET MVC application by decorating the FirstName and LastName properties of the Employee Model with the required data annotation attribute as shown below.

[Required]
public string FirstName
{
    get;
    set;
}
[Required]
public string LastName
{
    get;
    set;
}

The Required attribute raises a validation error, if either the property value is null or empty. The built-in required validation attributes provide both client side and server side validation like other built-in validation attributes.

When we submit the page without providing the FirstName and LastName of an employee, we will get the error message as shown below.

Required Attribute in ASP.NET MVC Application

With the required attributes in place, if someone tries to submit the page without providing the FirstName and LastName value, then it will give you the default error as shown in the above image. But if you want to provide some user-defined error message when validation fails, they can use the below version of the Required code.

[Required(ErrorMessage = "First Name is Required")]
public string FirstName
{
    get;
    set;
}
[Required(ErrorMessage = "Last Name is Required")]
public string LastName
{
    get;
    set;
}

With the above changes, if someone tries to submit the page without providing the FirstName and LastName value, then it will give the user-defined error as shown below.

Required Attribute in ASP.NET MVC Application

StringLength Attribute

In our last example, we are forcing the user to enter his first name and last but what happens if he enters a name with enormous length?

For example, our business requirement is that the employee LastName should not be greater than 30 characters that mean we need to set the maximum 30 characters that can be entered for the employee the last name.

We can achieve this very easily using data annotation in ASP.NET MVC application. To achieve this we need to decorate the LastName property with StringLength attributes as shown below.

[Required(ErrorMessage = "Last Name is Required")]
[StringLength(30)]
public string LastName
{
    get;
    set;
}

When we run the application, and when we enter more than 30 characters in the LastName textbox, then we will get the below default error message:

StringLength Attribute in ASP.NET MVC Application

Note: We can apply multiple validation attributes on a single property. MinimumLength is an optional named parameter which is used to specify the minimum length for a string. We can also specify the user-defined error message as shown below.

[Required(ErrorMessage = "Last Name is Required")]
[StringLength(30, MinimumLength = 4,
                  ErrorMessage = "Last name should be between 4 and 30 characters")]
public string LastName
{
    get;
    set;
}

In the above example, we have decorated the LastNameproperty with the StringLength attribute and then specified the Minimum and Maximum length of the model properties. We also used the [Required] attribute. So, at this point, the LastName property is required and should be between 4 and 30 characters.

Points to remember:
  1. [StringLength] attribute is present in System.ComponentModel.DataAnnotations namespace.
  2. [StringLength] attribute verifies that a string is of a certain length, but does not enforce that the property is REQUIRED. If you want to enforce that the property is required then use [Required] attribute.

Now run the application and check everything is working as expected as shown below.

StringLength Attribute in ASP.NET MVC Application

In the next article, I will discuss Regular Expression Attribute in ASP.NET MVC.

SUMMARY

In this article, I try to explain the Required Attribute and StringLength Attribute in ASP.NET MVC application step by step with examples. I hope this article will help you with your need. I would like to have your feedback. Please post your feedback, question, or comments about this article. 

Leave a Reply

Your email address will not be published. Required fields are marked *