/// <summary>
        /// 500...
        /// </summary>
        /// <param name="ex"></param>
        /// <returns></returns>
        public ActionResult Index(CustomExceptionEntity ex)
        {
            Response.StatusCode = 500;
            ViewData            = new ViewDataDictionary <CustomExceptionEntity>(ex);

            return(View());
        }
Beispiel #2
0
        /// <summary>
        /// 记录错误日志
        /// </summary>
        /// <param name="filterContext"></param>
        public void OnException(ExceptionContext filterContext)
        {
            switch (this.Format)
            {
            case EnumOutputFormat.Redirect:
            {
                var ex      = new CustomExceptionEntity(filterContext.Exception);
                var request = filterContext.HttpContext.Request;
                ex.IISVersion = request.ServerVariables["SERVER_SOFTWARE"];
                ex.UserAgent  = request.UserAgent;
                ex.Path       = request.Path;
                ex.HttpMethod = request.HttpMethod;

                filterContext.Result = new ViewResult()
                {
                    ViewName = "~/Views/Error/Index.cshtml",
                    ViewData = new ViewDataDictionary <CustomExceptionEntity>(ex)
                };
            }
            break;

            case EnumOutputFormat.JSON:
            {
                filterContext.Result = new JsonResult()
                {
                    Data = new
                    {
                        code    = HttpStatusCode.InternalServerError,
                        message = filterContext.Exception.Message
                    },
                    JsonRequestBehavior = JsonRequestBehavior.AllowGet
                };
            }
            break;
            }
            filterContext.ExceptionHandled = true;
        }