我正在使用 ASP.NET MVC 和下面的代码来返回异常描述并将其存储在 session 中。我需要帮助找出异常的错误代码,如 500
、403
、404
等。我该怎么做?
这就是我在 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/