c# - 如何在 ASP.NET MVC 中获取错误状态代码

标签 c# asp.net-mvc asp.net-mvc-4 error-handling

我正在使用 ASP.NET MVC 和下面的代码来返回异常描述并将其存储在 session 中。我需要帮助找出异常的错误代码,如 500403404 等。我该怎么做?

这就是我在 session 中存储错误消息的方式:

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;
}

最佳答案

检查异常是否为 HttpException。然后照原样转换并获取状态代码。

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

关于c# - 如何在 ASP.NET MVC 中获取错误状态代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22902873/

相关文章:

c# - 将 asp.net c# webservice datetime 值转换为 android(Java) 中的 Date 对象

c# - 如何从同一个 View 执行 3 个不同的 Controller 方法

c# - Globalprotect VPN 批处理文件或 C# 代码

c# - 在 Asp.net 中显示括号

c# - 如何以编程方式从共享点站点下载文件?

asp.net-mvc - 如何在Asp.Net MVC中实现HttpApplication

javascript - ASP.NET MVC 与 Angular JS 集成中的防伪 token 问题

c# - 使用正则表达式在 Controller 中进行验证

c# - Authorize 和 GetRoles 在 ASP.NET Identity 中不起作用

asp.net-mvc - 为什么我的样式表将我重定向到登录?