我可以使用customErrors调用服务器端代码吗?

时间:2016-09-21 18:25:08

标签: asp.net-mvc

如果我在Web.config中使用customErrors,在调用此页面之前如何使用任何服务器代码?

在调用错误之前,我是否必须处理我的catch语句? 还有其他选择吗?

<customErrors mode="On" defaultRedirect="~/Views/Shared/MyPageError.cshtml" />

在我的情况下,我希望在用户访问我的错误页面之前将其从网站上注销。

2 个答案:

答案 0 :(得分:0)

您可以在应用程序中创建可以处理错误的过滤器,例如

public class FilterConfig
    {
        public static void RegisterGlobalFilters(GlobalFilterCollection filters)
        {
            filters.Add(new ErrorHandler());
        }

        public class ErrorHandler : HandleErrorAttribute
        {
            public override void OnException(ExceptionContext filterContext)
            {
                base.OnException(filterContext);
                SendEmail(filterContext.Exception.Message);
            }
        }
    }

在Global.asax.cs中注册

FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);

在控制器上提到这个

[ErrorHandler]

如果出现错误,您也可以指定视图

[ErrorHandler(View = "")]

答案 1 :(得分:0)

我最终在视图中添加了一个ajax get方法来调用我的服务器端代码。