asp.net-mvc – 处理ASP.NET MVC中的路由错误
发布时间:2020-12-15 20:29:06 所属栏目:asp.Net 来源:网络整理
导读:我理解如何设置自己的路由,但是如何处理路由表中的路径呢?我的意思是,我猜默认的{controller} / {action} / {id}路由可能是一个通用的catchall,但我不确定这是否可行.我喜欢让我的用户知道他们已经请求了数据/不存在的“页面”. 这是[HandleError]过滤器的
我理解如何设置自己的路由,但是如何处理路由表中的路径呢?我的意思是,我猜默认的{controller} / {action} / {id}路由可能是一个通用的catchall,但我不确定这是否可行.我喜欢让我的用户知道他们已经请求了数据/不存在的“页面”.
这是[HandleError]过滤器的来源吗?这究竟是如何运作的? 解决方法
如果找不到您的路线,您希望将其作为正常的
HTTP 404错误处理.
如果只将[HandleError]属性添加到类或操作中,MVC将在视图文件夹中查找错误视图. 您还可以添加ErrorController甚至静态页面并将其添加到Web.config: <customErrors mode="On" > <error statusCode="404" redirect="/Error/PageNotFound/" /> </customErrors> 或者您可以在Global.asax.cs中处理HTTP 404并以编程方式路由到ErrorController.这就是我通常这样做的方式: protected void Application_Error(object sender,EventArgs e) { var ex = Server.GetLastError().GetBaseException(); var routeData = new RouteData(); if (ex.GetType() == typeof(HttpException)) { var httpException = (HttpException)ex; switch (httpException.GetHttpCode()) { case 404: routeData.Values.Add("action","PageNotFound"); break; default: routeData.Values.Add("action","GeneralError"); break; } } else { routeData.Values.Add("action","GeneralError"); } routeData.Values.Add("controller","Error"); routeData.Values.Add("error",ex); IController errorController = new ErrorController(); errorController.Execute(new RequestContext(new HttpContextWrapper(Context),routeData)); } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc – mvc web应用程序应该是3层吗?
- asp.net – 提高网站的性能?
- .net – 使用DataAnnotations 4.0
- asp.net-mvc-3 – 如何使用EF-Code-First将大表分成多个离散
- .net – 当表中的数据发生变化时,SqlCacheDependency如何知
- asp.net-mvc – 如何构造VB.NET Windows窗体应用程序
- ASP.NET -- WebForm -- 页面生命周期事件
- 为.NET Core项目定义Item Template
- asp.net-mvc – Azure SignalR服务连接未激活
- asp.net – 在Global.asax上使用IHttpModule
推荐文章
站长推荐
- asp.net-mvc – 从ASP.NET MVC捆绑迁移到Grunt /
- asp.net-mvc – 如何在ASP.NET MVC中为经过身份验
- asp.net-web-api – ASP.NET WEB API 2 OWIN身份
- asp.net-mvc-3 – RedirectResult Object作为URL
- 如何在asp.net和C#中实现登录会话
- asp.net – updatepanel中的文本框的问题 – 不会
- asp.net-mvc-2 – 读取HTTP请求自定义标头
- 如何将Ninject集成到ASP.NET Core 2.0 Web应用程
- asp.net-web-api – 如何设置Elmah与ASP.NET Web
- asp.net – AppHarbor:不允许使用目录’/ App_G
热点阅读