ASP MVC中应该使用远程验证还是Jquery ajax调用?
我想知道什么是在ASP MVC中使表单有效的最好方法 我使用jQueryAjax检查数据库中的ASP MVC中应该使用远程验证还是Jquery ajax调用?,jquery,asp.net-mvc-3,Jquery,Asp.net Mvc 3,我想知道什么是在ASP MVC中使表单有效的最好方法 我使用jQueryAjax检查数据库中的Username出口。所以问题是当我提交表单时,这个方法需要我点击Username字段来执行onblur函数ajax调用,它不会显示以前的错误消息 使用远程验证,它在我离开或忽略用户名时执行。但这种方式的问题是我无法管理错误消息,例如: 用户名必须至少有3个字符……或已使用的用户名 任何人都可以给我一个建议或一些链接,告诉我如何在时间上验证表单的有效性(这意味着当用户省略该字段并转到下一个字段时,如本页
Username
出口。所以问题是当我提交表单时,这个方法需要我点击Username
字段来执行onblur
函数ajax调用,它不会显示以前的错误消息
使用远程验证
,它在我离开或忽略用户名时执行。但这种方式的问题是我无法管理错误消息,例如:
用户名必须至少有3个字符……
或已使用的用户名
任何人都可以给我一个建议或一些链接,告诉我如何在时间上验证表单的有效性(这意味着当用户省略该字段并转到下一个字段时,如本页:)?使用
$("#UserName").focusout(function(event){
var name = $(this).attr('value');
if(name.length>=3)
{
searchCustomer();//Function containing your ajax call
}
else
{
//Show error message of length less than 3
}
});
要解决您的问题,您可以使用以下解决方案:
在控制器上创建JsonResult或Action Result方法:
[HttpPost]
public JsonResult GetUserNameExistant([Bind(Include = "UserName")] User user)
{
var user= repository.List("").Count(c => c.user== user.UserName);
if (!user.Equals(0))
{
//This User Found
return Json("This UserName Exist!", JsonRequestBehavior.DenyGet);
}
//This UserName Not Found On DB
return Json(true, JsonRequestBehavior.AllowGet);
}
在域类中,在属性上方添加以下行代码:
[远程(“GetUserNameExistant”、“User”、HttpMethod=“Post”)]
你能在jsfiddle上发布一个样本吗?@PKKG的可能副本我试着用你的方式来做,但它不起作用。