Validation MVC4中使用SimpleMembership的远程验证-不命中控制器方法
我试图在注册页面的UserName proerty上使用远程验证,因此如果用户名已经被使用,用户会收到通知。在我添加SimpleMembership之前,它起作用了 添加SimlPlembership后,它停止工作,返回一个错误,这与所有simplemembership表没有PK有关。我研究并发现了一种内置的方式来进行远程验证 现在我没有收到任何错误,我可以在GoogleDeveloper工具的network选项卡中看到,正在对正确的控制器进行ajax调用,但是我在controller方法中放置了一个断点,它没有被命中。所以我不知道该怎么办。以下是我的设置方式: 附加了远程属性的模型:Validation MVC4中使用SimpleMembership的远程验证-不命中控制器方法,validation,jquery,simplemembership,Validation,Jquery,Simplemembership,我试图在注册页面的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]装饰它。因此,它正在点击,确定它未被授权,然后重定向到登录方法。现在把她修好了。请回答,我给你打勾。