如果我在我的Web.config中使用customErrors,在调用此页之前,如何使用任何服务器代码?我可以使用customErrors调用服务器端代码吗?
在调用错误之前,我必须在我的catch语句中处理吗? 还有其他的选择吗?
<customErrors mode="On" defaultRedirect="~/Views/Shared/MyPageError.cshtml" />
在我的情况下,我想在用户离开网站之前,它击中我的错误页面。
如果我在我的Web.config中使用customErrors,在调用此页之前,如何使用任何服务器代码?我可以使用customErrors调用服务器端代码吗?
在调用错误之前,我必须在我的catch语句中处理吗? 还有其他的选择吗?
<customErrors mode="On" defaultRedirect="~/Views/Shared/MyPageError.cshtml" />
在我的情况下,我想在用户离开网站之前,它击中我的错误页面。
我最终添加了一个ajax get方法到视图来调用我的服务器端代码。
您可以创建应用程序过滤器,它可以处理你的错误,例如
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 = "")]
所以我会在这种情况下关闭customErrors并在所有控制器上实现ErrorHandler过滤器? – PrivateJoker
我试过[ErrorHandler(View =“〜/ Views/Shared/MyPageError.cshtml”)]但是它不会显示这个页面。这只是把一个丑陋的错误信息扔到屏幕上。 – PrivateJoker
@JDS你在Global.asax.cs中注册它,如果是比使用 [的HandleError(查看= “”)] [的ErrorHandler(查看= “”)] –