从ActionFilterAttribute检索响应HTTP状态代码

时间:2015-09-04 15:23:10

标签: asp.net-mvc

如果我在控制器中抛出未处理的异常,则filterContext - > HTTPContext - >响应始终返回200-OK。

public class HomeController : Controller
{
    public ActionResult Index()
    {
        throw new Exception("some error");
        return View();
    }
}

如何从ActionFilterAttribute中的filterContext检索实际状态,或者我可以吗?

public class LogAttribute : ActionFilterAttribute
{
    public override void OnActionExecuted(ActionExecutedContext filterContext)
    {
        base.OnActionExecuted(filterContext);
    }
}

2 个答案:

答案 0 :(得分:0)

filterContext.Response?.StatusCode.ToString() ?? "<null>"

应该给你你想要的东西。

答案 1 :(得分:0)

更好的选择是检查Exception字段。如果您需要知道的是,堆栈中是否存在未处理的异常......