Using Visual Studio 2013.4 (Visual Studio 2013 Update 4) I have created a regular ASP.NET MVC 5 project with Individual User Accounts authentication configuration. All the users registration and log-in features has been already scaffolded for me by Visual Studio and works fine.
How to implement client-side validation of the following rule on the registration page: There is no already registered user with the same Email?
You could use RemoteAttribute to perform client side validation with a server callback.
1) Add the following method to the AccountController
:
[AllowAnonymous]
public async Task<JsonResult> UserAlreadyExistsAsync(string email)
{
var result =
await userManager.FindByNameAsync(email) ??
await userManager.FindByEmailAsync(email);
return Json(result == null, JsonRequestBehavior.AllowGet);
}
2) Add Remote
attribute to Email
property of RegisterViewModel
class:
[Remote("UserAlreadyExistsAsync", "Account", ErrorMessage = "User with this Email already exists")]
public string Email { get; set; }
where "Account"
is the name of the serving controller and "UserAlreadyExistsAsync"
is it's action name.