登録フォームのユーザー名入力テキストに対して 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 を使用してレンダリングされます
ありがとう。