Asp.net mvc 3 MVC3上的远程验证在keypress/keyrelease上触发,而不是在lostfocus上触发

Asp.net mvc 3 MVC3上的远程验证在keypress/keyrelease上触发,而不是在lostfocus上触发,asp.net-mvc-3,remote-validation,Asp.net Mvc 3,Remote Validation,我尝试在MVC3上对注册表单上的用户名输入文本进行远程验证,一切正常,除了当输入失去焦点时,我期望远程验证触发,但每次按键或输入中写入的向上键都会触发,导致对操作验证的许多请求与您编写的每个字符一样多 有任何方法可以使用内置的不引人注目的javascript来改变这种行为 这就是我的属性模型的外观: [Required] [Display(Name = "User Name")] [Remote("ValidateUniqueUserName", "Account")] public strin

我尝试在MVC3上对注册表单上的用户名输入文本进行远程验证,一切正常,除了当输入失去焦点时,我期望远程验证触发,但每次按键或输入中写入的向上键都会触发,导致对操作验证的许多请求与您编写的每个字符一样多

有任何方法可以使用内置的不引人注目的javascript来改变这种行为

这就是我的属性模型的外观:

[Required]
[Display(Name = "User Name")]
[Remote("ValidateUniqueUserName", "Account")]
public string UserName { get; set; }
这是控制器的外观:

public JsonResult ValidateUniqueUserName(string username)
    {
        if (string.IsNullOrEmpty(username))
        {
            return Json("User Name is required", JsonRequestBehavior.AllowGet);
        }
        var result = _membershipApplicationService.IsUserNameAvalible(username);
        if (!result)
        {
            return Json("User Name is already taken, please try another one", JsonRequestBehavior.AllowGet);
        }
        return Json(true, JsonRequestBehavior.AllowGet);
    }
注册表单使用@Html.Partial


谢谢。

看看这个问题的答案