asp.net-mvc – 处理ASP.NET MVC中的路由错误
发布时间:2020-05-22 21:21:00 所属栏目: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 – 如何将两个模型传递给一个View
- NHibernate中对同一个对象的Lazyload要设置一致
- asp.net – 无法自动进入服务器.无法确定停止位置
- 如何使用asp.net webapi获取Json Post Values
- asp.net – 如何在EF DbContext和AspNet Membership之间共享
- asp.net-mvc – 什么时候应该在asp.net mvc中使用部分视图?
- asp.net-mvc – 如何覆盖Orchard CMS中导航区域的渲染?
- .net – 404控制器在外部组件
- asp.net – MembershipProvider在代码中更改连接字符串
- asp.net-mvc – MVC 4 Ajax.beginform提交 – 导致完全回发
推荐文章
站长推荐
- asp.net-mvc – User.IsInRole不起作用
- asp.net-mvc – ASP.net身份在删除外部帐户后停止
- 为什么32位应用程序池在IIS中更有效?
- asp.net-mvc-3 – MVC3剃须刀:是否可以渲染传统
- asp.net – .NET Web API HttpResponseMessage模
- asp.net – 在文本框中输入按键时避免发出哔声
- asp.net-mvc – 带有Expression Web 4的ASP.NET
- asp.net-mvc – ASP.NET MVC读取原始JSON信息数据
- ASP.NET MVC和SQL Server报告服务
- asp.net-mvc – 使用LINQ的多个或单个存储库
热点阅读
