我有一个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
的行为中绕过自定义错误设置?
谢谢!
答案 0 :(得分:0)
这是可能的,但你必须调整你的Global.asax文件来重定向错误,如:Custom error pages on asp.net MVC3
然后,您可以根据控制器或操作或请求类型执行不同的操作。