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