我已经阅读了很多分步教程,但仍然无法让我的代码工作,我浏览了这个网站上的解决方案,但也没有运气,我不知道我做错了什么。
我正在使用 jQuery,想知道用户名“mark”是否被占用,我什至还没有达到数据库链接。
[HTML]
<input id="user_name" name="user_name" onchange="UserCheck()" type="text" value="" />
<div id="status" />
[JS]
function UserCheck() {
$("#status").html("Checking....");
$.post("/user/check",
{ username: $("#user_name").val() },
function (data) {
if (data == 0) {
$("#status").html("Available");
}
else {
$("#status").html("Taken");
}
});
}
[Controller]
public JsonResult check(FormCollection form)
{
System.Threading.Thread.Sleep(3000);
string name = form["username"];
if (name.Equals("mark")){
return Json(1);
} else {
return Json(0);
}
}
检查以下链接:
立即检查用户名是否存在 - ASP.NET MVC 远程验证 http://www.tugberkugurlu.com/archive/check-instantly-if-username-exists-asp-net-mvc-remote-validation
这里你需要的是RemoteAttribute
对于您正在检查的属性,您还需要实现一个返回的控制器操作JsonResult
具有布尔值。
这是一个简短的示例:
您的型号:
[Required]
[Display(Name = "User name")]
[Remote("doesUserNameExist", "Account", HttpMethod = "POST", ErrorMessage = "User name already exists. Please enter a different user name.")]
public string UserName { get; set; }
您的行动结果:
[HttpPost]
public JsonResult doesUserNameExist(string UserName) {
var user = Membership.GetUser(UserName);
return Json(user == null);
}
您可以根据需要调整操作结果内的业务逻辑。
另外,请确保您的注册页面上引用了以下库以及您的jQuery file:
jquery.validate.min.js
jquery.validate.unobtrusive.min.js
上面的博客文章涵盖了您需要的一切。
NOTE
请记住Remote
验证不会在服务器端启动。您可能想检查以下链接以进行服务器端远程验证(虽然我不建议在生产中使用它,它充满了漏洞,但它会给你一个想法):
http://www.tugberkugurlu.com/archive/asp-net-mvc-server-side-remote-validation http://www.tugberkugurlu.com/archive/asp-net-mvc-server-side-remote-validation
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)