/// <summary> /// 500... /// </summary> /// <param name="ex"></param> /// <returns></returns> public ActionResult Index(CustomExceptionEntity ex) { Response.StatusCode = 500; ViewData = new ViewDataDictionary <CustomExceptionEntity>(ex); return(View()); }
/// <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; }