asp.Netmvcグローバルエラー処理
4020 ワード
方法1:グローバルキャプチャ異常エラー符号化に従って直接対応する静的ページにジャンプ
1,Global.asax.csファイルにエラー処理方法を追加Application_Errorコードは次のとおりです.
2,エラーエンコーディングにより対応する静的ページを新規作成する
-
方式2:グローバルキャプチャ異常ルーティングから指定ページ処理へ
利点:エラーページに詳細なエラー情報が表示される欠点:新しいルーティングサポート(コントローラ、action)コードが必要です.
ステップ1、Global.asax.csファイルにエラー処理方法を追加Application_Errorコードは次のとおりです.
ステップ2、対応するエラー処理コントローラまたはメソッドを新規作成する
注:ジャンプページを区別したり、異常情報を表示したりするには、エラー符号化もパラメータを介して転送する方法があります.
エラー符号化に基づいて複数の方法を確立し、ステップ1でエラー符号化に基づいて異なる方法にルーティングして表示するようにしてもよい
不足点:ステップ2パラメータを介してエラーメッセージを渡すと、アドレスバーを通りかかった友人がエラー処理に対してより良いアイデアを持っていることが表示されます.
転載先:https://www.cnblogs.com/3dianpomian/p/5336376.html
1,Global.asax.csファイルにエラー処理方法を追加Application_Errorコードは次のとおりです.
protected void Application_Error(object sender, EventArgs e)
{
Exception exception = Server.GetLastError();
Log.Error(exception); //
var httpStatusCode = (exception as HttpException)?.GetHttpCode() ?? 700; //
var httpContext = ((MvcApplication)sender).Context;
httpContext.ClearError();
#region
switch (httpStatusCode)
{
case 404:
httpContext.Response.Redirect("/Error/404.html");
break;
default:
httpContext.Response.Redirect("/Error/500.html");
break;
}
#endregion
}
2,エラーエンコーディングにより対応する静的ページを新規作成する
-
方式2:グローバルキャプチャ異常ルーティングから指定ページ処理へ
利点:エラーページに詳細なエラー情報が表示される欠点:新しいルーティングサポート(コントローラ、action)コードが必要です.
ステップ1、Global.asax.csファイルにエラー処理方法を追加Application_Errorコードは次のとおりです.
protected void Application_Error(object sender, EventArgs e)
{
Exception exception = Server.GetLastError();
Log.Error(exception); //
var httpStatusCode = (exception as HttpException)?.GetHttpCode() ?? 700; //
var httpContext = ((MvcApplication)sender).Context;
httpContext.ClearError();
#region
var routeDic = new RouteValueDictionary
{
{"controller", "Error"},
{"error", exception}
};
httpContext.Response.RedirectToRoute("Default", routeDic);
#endregion
}
ステップ2、対応するエラー処理コントローラまたはメソッドを新規作成する
注:ジャンプページを区別したり、異常情報を表示したりするには、エラー符号化もパラメータを介して転送する方法があります.
エラー符号化に基づいて複数の方法を確立し、ステップ1でエラー符号化に基づいて異なる方法にルーティングして表示するようにしてもよい
public class ErrorController : Controller
{
public ActionResult Index(string error)
{
ViewBag.Summary= "WebSite ";
ViewBag.Description = error;
return View();
}
//public ActionResult HttpError404(string error)
//{
// ViewData["Title"] = "HTTP 404- ";
// ViewData["Description"] = error;
// return View();
//}
}
不足点:ステップ2パラメータを介してエラーメッセージを渡すと、アドレスバーを通りかかった友人がエラー処理に対してより良いアイデアを持っていることが表示されます.
転載先:https://www.cnblogs.com/3dianpomian/p/5336376.html