如果我在我的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(查看= 「」)] –