DsJian.Mvc/Filters/ExceptionFilter.cs

(完整代码) 1KB

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Web.Mvc;

namespace DsJian.Mvc.Filters
{
    public class ExceptionFilter : FilterAttribute, IExceptionFilter
    {
        #region IExceptionFilter 成员

        public void OnException(ExceptionContext filterContext)
        {
            var exception = filterContext.Exception;
            var viewData = filterContext.Controller.ViewData;

            viewData["Message"] = exception.Message;
            viewData["StackTrace"] = exception.StackTrace;

            var httpException = exception as System.Web.HttpException;
            if (httpException != null)
            {
                switch (httpException.GetHttpCode())
                {
                    case 404:
                        viewData["Title"] = "文件找不到";
                        break;
                    case 500:
                        viewData["Title"] = "服务器内部错误";
                        break;
                    default:
                        viewData["Title"] = "系统错误";
                        break;
                }
            }
            else
            {
                viewData["Title"] = "抱歉,访问时发生了错误!";
            }

            filterContext.Result = new ViewResult()
            {
                ViewName = "Error",
                ViewData = filterContext.Controller.ViewData
            };

            filterContext.ExceptionHandled = true;
        }

        #endregion
    }
}

24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明

AI 解读

登录后可用,每次 10 积分,解读结果公开显示在下面。

还没有人解读过这个文件。