1

私は<td>@Html.EditorFor(m => m.User.Username)</td>RegisterViewにあります。fireBUg の HTML は次のとおりです。

  <td>
<input id="User_Username" class="text-box single-line" type="text" value="" name="User.Username" data-val-required="The Username field is required." data-val="true">
</td>

ユーザー名が存在するかどうかを確認するための小さなjqueryコードを作成します。これが私のコードです:

function CheckUserNameExits() {
$("#User_Username").on("blur", function () {
    $("#User_Username").addClass("thinking");
    var username = $("#User_Username").val();
    $.ajax({
        url: "/Account/CheckUsername",
        data: { userName: username },
        dataType: "json",
        type: "POST",
        error: function () {
            return;
        },
        success: function (data) {
            if (data) {
                $("#User_Username").addClass("approved");
            }
            else {
                $("#User_Username").addClass("denied");
                $(".field-validation-error").html("The username already exits.");
            }
        }
    });
});

}

しかし、テキストボックスに入力してそのままにしておくと。POST 値は常に null です。true投稿値が null であるため、スクリプトは常に返されます。私のコントローラーの方法:

[HttpPost]
    public ActionResult CheckUsername(string userName)
    {
        var user = IUserRepo.GetUserByUrName(userName);
        if (user!= null)
            return Json(false);
        return Json(true);
    }

デバッグでは、userNameパラメーターは常に null です。変更しようとし$("#User_Username")ました$(".text-box")が、POST 値も null です。私への提案はありますか?

4

2 に答える 2

0

idあなたに与えてEditFor試してみてください

@Html.EditorFor(m => m.User.Username,new{id="EDUserName"})

function CheckUserNameExits() {
$("#EDUserName").on("blur", function () {
    $("#EDUserName").addClass("thinking");
    var username = $("#EDUserName").val();
    $.ajax({
        url: "/Account/CheckUsername",
        data: { userName: username },
        dataType: "json",
        type: "POST",
        error: function () {
            return;
        },
        success: function (data) {
            if (data) {
                $("#EDUserName").addClass("approved");
            }
            else {
                $("#EDUserName").addClass("denied");
                $(".field-validation-error").html("The username already exits.");
            }
        }
    });
});
}
于 2013-08-07T08:38:51.897 に答える