0

我在 asp.net mvc 中有以下脚本:

       $.ajax({
           url: "/MyController/MyAction/",
           type: 'POST',
           data: $("#Myform").serialize(),
           success: function () {
               // Do something
           },
           error: function () {
               // Do something
           },
           complete: function () {
               // Do something                 
           },
           beforeSend: function () {
               // Do someting
           }
       });

此脚本调用控制器中的操作。控制器执行一些操作,有时事情会正常或不正常。如果一切顺利,我希望脚本中的成功和完成选项被执行。直到这里没有问题,但是如果在控制器中出现错误或我想告诉脚本:“嘿,有错误!” 然后是要执行的脚本中的错误选项。这个怎么做?为了执行脚本中的错误选项,我是否必须从控制器向脚本返回某些内容以指示已生成错误?

4

3 回答 3

2

在控制器中将HTTP 状态代码设置为 4xx 或 5xx。

这将使您最终陷入错误回调。

于 2013-09-20T13:42:25.147 回答
1

在您的操作中使用 try catch,例如,

public ActionResult Sample()
{

try
{
return Json(new{status="success"},JsonRequestBehavior.AllowGet);
}
catch(Exception ex)
{
return Json(new{status="failed"},JsonRequestBehavior.AllowGet);
}
}

在您的 ajax 调用成功检查中,条件如下,

if(data.status=='success')
{
alert('All Happies');
}
else
{
alert('error came');
}

希望这可以帮助。

于 2013-09-20T15:01:02.327 回答
1

就 AJAX 请求而言,错误是获取页面的传输/网络错误。

如果要返回错误,请在数据中返回错误,然后对其进行解析并在检测到错误时在成功部分中执行错误函数。或者,正如 Johan 所说,从服务器返回一个 HTTP 错误代码。

于 2013-09-20T13:44:31.117 回答