如何在ASP.NET MVC中获取错误状态码

4
我将使用ASP.NET MVC和以下代码返回异常描述并将其存储在会话中。我需要帮助查找异常的错误代码,例如500、403、404等。我该怎么做?
以下是我如何将错误消息存储在会话中:
System.Web.HttpContext.Current.Session["errorMessage"] = filterContext.Exception.Message.ToString();

public override void OnException(System.Web.Mvc.ExceptionContext filterContext)
{
    ProcessResult processResult = new ProcessResult();

    // If the exception is already handled, we do nothing
    if (filterContext.ExceptionHandled)
    {
        return;
    }
    else
    {
        var controllerName = (string)filterContext.RouteData.Values["controller"];
        var actionName = (string)filterContext.RouteData.Values["action"];
        var model = new HandleErrorInfo(filterContext.Exception, controllerName, actionName);
        processResult.Controller = controllerName;
        processResult.Action = actionName;
        processResult.ExceptionMessage = filterContext.Exception.Message;
        System.Web.HttpContext.Current.Session["errorMessage"] = filterContext.Exception.Message.ToString();
        processResult.StackTrace = filterContext.Exception.StackTrace;
        processResult.Source = filterContext.Exception.Source;
    }
    // Mark the exception as handled
    filterContext.ExceptionHandled = true;
}
1个回答

9

检查异常是否为HttpException。然后将其强制转换为HttpException并获取状态码。

if (filterContext.Exception is HttpException)
{
    var statusCode = ((HttpException)filterContext.Exception).GetHttpCode();
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接