ASP.NET MVC自定义错误处理Application_Error Global.asax?

ASP.NET MVC自定义错误处理Application_Error Global.asax?,第1张

ASP.NET MVC自定义错误处理Application_Error Global.asax?

无需为此创建新路由,您只需重定向到控制器/ *** 作并通过querystring传递信息即可。例如:

protected void Application_Error(object sender, EventArgs e) {  Exception exception = Server.GetLastError();  Response.Clear();  HttpException httpException = exception as HttpException;  if (httpException != null) {    string action;    switch (httpException.GetHttpCode()) {      case 404:        // page not found        action = "HttpError404";        break;      case 500:        // server error        action = "HttpError500";        break;      default:        action = "General";        break;      }      // clear error on server      Server.ClearError();      Response.Redirect(String.Format("~/Error/{0}/?message={1}", action, exception.Message));    }

然后,您的控制器将收到您想要的任何东西:

// GET: /Error/HttpError404public ActionResult HttpError404(string message) {   return View("SomeView", message);}

您的方法需要权衡取舍。在这种错误处理中循环时要非常小心。另一件事是,由于要通过asp.net管道来处理404,因此将为所有这些匹配创建会话对象。对于频繁使用的系统,这可能是一个问题(性能)。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5018478.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-15
下一篇 2022-11-14

发表评论

登录后才能评论

评论列表(0条)

保存