Can';无法在jquery中获取EditorFor值?

Can';无法在jquery中获取EditorFor值?,jquery,asp.net-mvc-3,Jquery,Asp.net Mvc 3,我在RegisterView中有一个@Html.EditorFor(m=>m.User.Username)。以下是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="tru

我在RegisterView中有一个
@Html.EditorFor(m=>m.User.Username)
。以下是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>
}

但当我填满文本框并离开它时。POST值始终为空。我确信我的脚本工作正常,它总是返回
true
,因为post值为null。我的控制器方法:

[HttpPost]
    public ActionResult CheckUsername(string userName)
    {
        var user = IUserRepo.GetUserByUrName(userName);
        if (user!= null)
            return Json(false);
        return Json(true);
    }
在调试中,
userName
参数始终为空。我试图通过
$(“.text box”)
更改
$(“#User_Username”)
,但POST值也为空。有什么建议吗?

试试这个

function CheckUserNameExits() {
$("#User_Username").on("blur", function () {
    $("#User_Username").addClass("thinking");
    var username = $("#User_Username").val();
    $.ajax({
        contentType: "application/json, charset=utf-8",
        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.");
                }
            }
        });
    });
}
试试这个

function CheckUserNameExits() {
$("#User_Username").on("blur", function () {
    $("#User_Username").addClass("thinking");
    var username = $("#User_Username").val();
    $.ajax({
        contentType: "application/json, charset=utf-8",
        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.");
                }
            }
        });
    });
}

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.");
            }
        }
    });
});
}

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.");
            }
        }
    });
});
}

您正在哪个浏览器中调试?邮件是否正确发送到服务器?当您通过代码调试时会发生什么如果您放置
警报(用户名),您会得到什么在javascript函数的正下方
var username=$(“#User_username”).val()我怀疑你的页面上有不止一个ID=User\u用户名,因为它可以按原样使用你的代码。已关闭。您正在哪个浏览器中调试?邮件是否正确发送到服务器?当您通过代码调试时会发生什么如果您放置
警报(用户名),您会得到什么在javascript函数的正下方
var username=$(“#User_username”).val()我怀疑你的页面上有不止一个ID=User\u用户名,因为它可以按原样使用你的代码。关闭