Jquery ajax调用的远程验证应该在ASP MVC中吗?

时间:2013-08-08 04:59:06

标签: jquery asp.net-mvc-3

我想知道在ASP MVC中验证表单的最佳方法是什么。

我使用Jquery Ajax检查数据库中的Username出口。所以问题是当我提交表单时,这个方法需要我点击Username字段来执行onblur函数ajax调用,它不会显示以前的错误消息。

使用Remote Validation,当我离开或关注Username时执行。但这种方式的问题是我无法管理错误消息,如: The username must be at least 3 charaters....The username already taken

任何人都可以给我一个建议或一些链接如何使表单ontime有效(这意味着当用户离开该字段并前往下一个字段时,如此页面:http://yame.vn/TaiKhoan/DangKy)?< / p>

2 个答案:

答案 0 :(得分:2)

使用

$("#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
}
});

答案 1 :(得分:1)

为了解决您的问题,您可以使用此解决方案:

  1. 在您的控制器上创建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);
    }
    
  2. 在您的域类中,在您的媒体资源上方添加此行代码:

    [Remote(&#34; GetUserNameExistant&#34;,&#34; User&#34;,HttpMethod =&#34; Post&#34;)]