我正在尝试在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
呈现感谢。