AJAX MVC3 jquery AJAX回调总是在成功时开始

AJAX MVC3 jquery AJAX回调总是在成功时开始,jquery,asp.net-mvc-3,data-annotations,Jquery,Asp.net Mvc 3,Data Annotations,我有以下问题,我有一个由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 =

我有以下问题,我有一个由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 });
   }
}
另一方面,我有以下用于按钮的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");
            }
        });

         }
    )
我的问题是:操作已经完成,但ajax调用总是在成功时结束——即使模型无效

问题:

  • 你知道为什么会发生这种情况,如果我设置为假成功?如果模型无效,我可以抛出一个异常,但我看不出这个东西很优雅

  • 您通常如何使用数据注释和Ajax管理验证


    • 因为你的要求,你总是能获得“成功”,这是正确的 总是工作<代码>$。ajax不知道返回的数据是什么。 因此,只有当您的请求失败时(例如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");
          }
      });
      

      希望这有帮助

      因为你的要求,你总是能获得“成功”,这是正确的 总是工作<代码>$。ajax不知道返回的数据是什么。 因此,只有当您的请求失败时(例如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");
          }
      });
      

      希望这有帮助

      完成。。。最后一个问题,你有没有url来解释现在突出显示那些值无效的文本框的最佳方式?我可以从json操作返回错误消息,但这是正确的方法吗?谢谢,祝你度过愉快的一天。你可以这样做,但我不知道你到底想要什么。您应该阅读有关验证的内容。完成。。。最后一个问题,你有没有url来解释现在突出显示那些值无效的文本框的最佳方式?我可以从json操作返回错误消息,但这是正确的方法吗?谢谢,祝你度过愉快的一天。你可以这样做,但我不知道你到底想要什么。您应该阅读有关验证的内容。