抛出异常时,MVC Controller Action会给出302

时间:2013-03-08 15:27:40

标签: asp.net-mvc-3

我有一个ASP.NET MVC 3应用程序。此应用程序有一些返回JSON的控制器操作。如果出现错误,我想将其退回给用户。我的一个动作的一般结构如下所示:

[AcceptVerbs(HttpVerbs.Get)]
public ActionResult DoSomething()
{
  try
  {
    // Do something here
    return Json(new { statusCode = StatusCodes.SUCCESS }, JsonRequestBehavior.AllowGet);
  }
  catch (Exception ex)
  {
     // Log it
     LogException(ex);

     // Toss it
     throw ex;
  }
}

我的问题是,当遇到异常时,我在Fiddler中注意到生成了302。我相信这是我在web.config中使用自定义错误设置的结果,如下所示:

<system.web>
  ...
  <customErrors mode="On" defaultRedirect="/error" />
  ...
</system.web>

我相信这是因为我在Fiddler看到的位置价值。我正在使用自定义错误来实现我实际返回View的操作。无论如何,我是否有办法在我返回JsonResult的行为中绕过自定义错误设置?

谢谢!

1 个答案:

答案 0 :(得分:0)

这是可能的,但你必须调整你的Global.asax文件来重定向错误,如:Custom error pages on asp.net MVC3

然后,您可以根据控制器或操作或请求类型执行不同的操作。