Jos*_*e3d 1 jquery data-annotations asp.net-mvc-3
我有以下问题我有这个由ajax调用的post动作:
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult AX_Login(LoginVM usersubmitted)
{
if (ModelState.IsValid)
{
return Json(new { success = true });
}
else
{
return Json(new { success=false, error = true });
}
}
Run Code Online (Sandbox Code Playgroud)
另一方面,我有一个按钮的以下jquery处理程序:
$("#Jquery_LoginButton").click(
function () {
$.ajax({
type: "POST",
url: "@(Url.Action("AX_Login","Users"))",
data:$("#MiniLoginForm").serialize(),
success: function (result)
{
alert("Good");
},
error: function ()
{
alert("Bad");
}
});
}
)
Run Code Online (Sandbox Code Playgroud)
我的问题:已达到行动,但ajax呼叫始终以成功结束 - 即使模型无效 - .
问题:
你知道为什么会发生这种情况如果我设定为假成功吗?如果模型无效但我不会看到优雅的东西,我可以抛出异常.
您如何通过Data Annotations和Ajax正常管理验证?
你总是得到"成功"是正确的,因为你的要求总能奏效.$.ajax
不知道什么数据回来了.因此,error
只有在您的请求失效时才会获得(例如404)
你必须这样做
$.ajax({
type: "POST",
url: "@(Url.Action("AX_Login","Users"))",
data:$("#MiniLoginForm").serialize(),
success: function (result)
{
if (result.success)
{
alert("Good");
}
else
{
alert("Bad");
}
},
error: function ()
{
alert("Request failed");
}
});
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助