ASP.NET MVC 3 provides a mechanism that can make a remote server call to validate a form field without posting the entire form to the server. This is useful when you have a field that cannot be validated on the client and is therefore likely to fail validation when the form is submitted.

In this attribute I am try to explain how we can use the Remote Attribute in a MVC application.
Step 1: We'll create a new MVC application in Visual Studio:

First.png
Step 2: Now to open the AccountController.cs file and add a new method there.
If the username contains "abc" it means the username is a duplicate. You can write your own logic to check the username.

public
JsonResult CheckDuplicateUserName(string UserName)

{
if (UserName.Contains("abc"))
{
return Json("Username is already exist", JsonRequestBehavior.AllowGet);
}
return Json(true, JsonRequestBehavior.AllowGet);
}

The above method will return the Json object.
Step 3: Now in the RegisterModel class we will add a Remote attribute for the Username Property.

[Required]

[Display(Name ="User name")]
[Remote("CheckDuplicateUserName","Account", "", ErrorMessage = "Dupicate")]

public
string UserName { get; set; }


In the following image, the first parameter is action and the second parameter is controller and the other parameters are optional.
Second.jpg

Step 4: Now we will run our application and navigate to the Register page. If you try with another value like xyz then it will not give you an error:
Third.png

You can also download the source code for this article.
Reference : http://msdn.microsoft.com/en-us/library/gg508808%28v=vs.98%2529
Happy Coding.