我<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 值始终为空。我确定我的脚本工作正常,它总是返回true
,因为 post 值为 null。我的控制器方法:
[HttpPost]
public ActionResult CheckUsername(string userName)
{
var user = IUserRepo.GetUserByUrName(userName);
if (user!= null)
return Json(false);
return Json(true);
}
在调试时userName
参数始终为空。我尝试更改$("#User_Username")
,$(".text-box")
但 POST 值也为空。对我有什么建议吗?