2

我正在尝试在 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 呈现注册表单

谢谢。

4

0 回答 0