Validation MVC4中使用SimpleMembership的远程验证-不命中控制器方法

Validation MVC4中使用SimpleMembership的远程验证-不命中控制器方法,validation,jquery,simplemembership,Validation,Jquery,Simplemembership,我试图在注册页面的UserName proerty上使用远程验证,因此如果用户名已经被使用,用户会收到通知。在我添加SimpleMembership之前,它起作用了 添加SimlPlembership后,它停止工作,返回一个错误,这与所有simplemembership表没有PK有关。我研究并发现了一种内置的方式来进行远程验证 现在我没有收到任何错误,我可以在GoogleDeveloper工具的network选项卡中看到,正在对正确的控制器进行ajax调用,但是我在controller方法中放置

我试图在注册页面的UserName proerty上使用远程验证,因此如果用户名已经被使用,用户会收到通知。在我添加SimpleMembership之前,它起作用了

添加SimlPlembership后,它停止工作,返回一个错误,这与所有simplemembership表没有PK有关。我研究并发现了一种内置的方式来进行远程验证

现在我没有收到任何错误,我可以在GoogleDeveloper工具的network选项卡中看到,正在对正确的控制器进行ajax调用,但是我在controller方法中放置了一个断点,它没有被命中。所以我不知道该怎么办。以下是我的设置方式:

附加了远程属性的模型:

    [Required]
    [Remote("VerifyUserExists", "Account")]
    [Display(Name = "User name")]
    public string UserName { get; set; }
未命中的控制器方法:

    public JsonResult VerifyUserExists(string username)
    {
        var user = Membership.GetUser(username);

        if (user != null)
        {
            return Json(ErrorCodeToString(MembershipCreateStatus.DuplicateUserName),
                            JsonRequestBehavior.AllowGet);
        }
        else
        {
            return Json(true, JsonRequestBehavior.AllowGet);
        }

    }
并在web配置中启用验证

<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" />


你知道我遗漏了什么吗?同样,在我添加simplemembership内容之前,这一切都起到了作用。

检查响应中返回的HTTP状态代码。如果用户无法从谷歌工具中分辨出状态代码,请使用Fiddler。如果状态代码为302,则服务器正在发送重定向,这通常在出现服务器错误时发生。检查服务器日志,查看是否存在任何错误,以确定问题所在。

在GET:/Account/VerifyUserExists上 加

[异名]


由于您切换到SimpleMemberShip内容,因此设置了默认的[Authorize]注释。因此,对于public GET,您应该显式设置[AllowAnonymous]

您可以通过查看google工具来指示ajax调用。响应中返回的HTTP状态代码是什么?如果您无法从google工具中辨别,请尝试使用Fiddler。HTTP状态代码302是一个重定向,通常在出现服务器错误时发生。检查服务器日志以查看是否有任何错误。如果我使用vs2012在我的设备上运行它,如何检查服务器日志?@Kevin-谢谢。我找到了日志,发现ajax调用无法命中VerifyUser方法,因为我忘了用[AllowAnnonymous]装饰它。因此,它正在点击,确定它未被授权,然后重定向到登录方法。现在把她修好了。请回答,我给你打勾。