首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >当url包含4个或更多路径段时,对于MVC 3中的404,不会触发Application_Error

当url包含4个或更多路径段时,对于MVC 3中的404,不会触发Application_Error
EN

Stack Overflow用户
提问于 2011-08-09 10:03:49
回答 3查看 1.1K关注 0票数 3

我正在尝试为404错误创建自定义错误页面。我已经在Global.asax.cs中实现了Application_Error方法。在大多数情况下,这种方法工作得很好,但对于具有4个或更多路径段的URL,不会调用该方法。

我遇到问题的具体URL是:

代码语言:javascript
运行
复制
http://localhost/Area/Controller/Action/ID

如果我删除ID,我的自定义404年龄加载正常。问题似乎是在我的路径中有4个级别(/Area/Controller/Action/ID)。有什么想法吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-08-09 11:02:14

我怀疑你的路由不会包含4个部分的URL。尝试添加一个catch all路由作为您的最后一个路由,以测试以下内容:

代码语言:javascript
运行
复制
routes.MapRoute("Error404", "{*url}", new {controller = "Error", action = "PageNotFound" } );

在您的RouteConfig.cs问题中包括(一些)您的路由也可能会有所帮助。

票数 12
EN

Stack Overflow用户

发布于 2011-08-09 10:07:57

为IIS设置自定义错误页:在IIS中,右键单击您的网站/虚拟目录-->属性-->自定义错误选项卡-->将404错误设置为您的错误页。

您的自定义错误将仅在符合您的路由规则的情况下触发。一旦所有路由规则都失败,并且在该路径上找不到页面,它就会将错误向上传递给IIS。然后,IIS将其404规则用于找不到对象,因此您必须覆盖该规则,并将其指向回您的项目中的自定义404。

票数 0
EN

Stack Overflow用户

发布于 2011-08-09 10:15:45

你得到的是你的IIS错误页面吗?尝尝这个。

  1. 打开IIS,选择您的网站,然后选择“错误页”选项。
  2. 找到404状态代码,右键单击并转到“编辑功能设置”。
  3. 现在,选择“自定义错误页”并将“路径类型”更改为URL“执行URL”
  4. 最后,输入您的URL作为相对值,现在它应该在出现404错误时重定向到此url。
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6990677

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档