大佬教程收集整理的这篇文章主要介绍了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/httpError404
public ActionResult httpError404(String messagE) {
return VIEw("SomeVIEw", messagE);
}
您的方法需要权衡取舍。在这种错误处理中循环时要非常小心。另一件事是,由于要通过asp.net管道来处理404,因此将为所有这些匹配创建会话对象。对于频繁使用的系统,这可能是一个问题(性能)。
我有一些基本代码来确定我的MVC应用程序中的错误。目前在我的项目,我有一个名为控制器Error
与操作方法httpError404()
,httpError500()
和General()
。它们都接受字符串参数error
。使用或修改下面的代码。将数据传递给错误控制器进行处理的最佳/正确方法是什么?我想有一个尽可能强大的解决方案。
protected void Application_Error(object sender,EventArgs E)
{
Exception exception = Server.GetLastError();
Response.Clear();
httpException httpException = exception as httpException;
if (httpException != null)
{
RouteData routeData = new RouteData();
routeData.Values.Add("controller","Error");
switch (httpException.GethttpCode())
{
case 404:
// page not found
routeData.Values.Add("action","httpError404");
break;
case 500:
// server error
routeData.Values.Add("action","httpError500");
break;
default:
routeData.Values.Add("action","General");
break;
}
routeData.Values.Add("error",exception);
// clear error on server
Server.ClearError();
// at this point how to properly pass route data to error controller?
}
}
以上是大佬教程为你收集整理的ASP.NET MVC自定义错误处理Application_Error Global.asax?全部内容,希望文章能够帮你解决ASP.NET MVC自定义错误处理Application_Error Global.asax?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。