如何检查ASP.NET MVC 5中客户端是否已存在用户?

Dei*_*lan 7 c# asp.net asp.net-mvc client-side-validation asp.net-identity

使用Visual Studio 2013.4(Visual Studio 2013 Update 4)我创建了一个具有个人用户帐户身份验证配置的常规ASP.NET MVC 5项目.所有用户注册和登录功能已经由Visual Studio支持我,并且工作正常.

如何在注册页面上实现以下规则的客户端验证:没有已注册的用户使用相同的电子邮件

Dei*_*lan 12

您可以使用RemoteAttribute通过服务器回调执行客户端验证.

1)将以下方法添加到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);
}
Run Code Online (Sandbox Code Playgroud)

2)添加Remote属性Email的财产RegisterViewModel类:

[Remote("UserAlreadyExistsAsync", "Account", ErrorMessage = "User with this Email already exists")]
public string Email { get; set; }
Run Code Online (Sandbox Code Playgroud)

"Account"服务控制器的名称在哪里,"UserAlreadyExistsAsync"是它的动作名称.

  • 值得一读[如何:在ASP.NET MVC中实现远程验证](https://msdn.microsoft.com/en-us/library/gg508808%28VS.98%29.aspx) (3认同)