当url包含4个或更多路径段时,不会在MVC 3中为404触发Application_Error

Bri*_*ian 3 asp.net asp.net-mvc iis-7.5

我正在尝试为404错误创建自定义错误页面.我在Global.asax.cs中实现了Application_Error方法.在大多数情况下,这非常有用,但是不会调用具有4个或更多路径段的URL.

我遇到问题的具体网址是:

http://localhost/Area/Controller/Action/ID
Run Code Online (Sandbox Code Playgroud)

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

Hec*_*rea 12

我怀疑你的路线没有占4个部分的URL.尝试添加catch all all route 作为测试它的最后路径:

routes.MapRoute("Error404", "{*url}", new {controller = "Error", action = "PageNotFound" } );
Run Code Online (Sandbox Code Playgroud)

在RouteConfig.cs问题中包含(部分)路由也可能有所帮助.