asp.net - 当 url 包含 4 个或更多路径段时,MVC 3 中的 404 不会触发 Application_Error

标签 asp.net asp.net-mvc iis-7.5

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

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

http://localhost/Area/Controller/Action/ID

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

最佳答案

我怀疑你的路由没有考虑到由 4 部分组成的 URL。尝试添加一条捕获所有路由作为您的最后一条路由来测试这一点:

routes.MapRoute("Error404", "{*url}", new {controller = "Error", action = "PageNotFound" } );

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

关于asp.net - 当 url 包含 4 个或更多路径段时,MVC 3 中的 404 不会触发 Application_Error,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6990677/

相关文章:

asp.net - 不管我做什么,请继续获取 "Login failed for user IIS APPPOOL\DefaultAppPool"

c# - 将 MVC3 集成到 webforms - MVC 路由不起作用

c# - 如何在 .CSHTML 中自动调整列宽?

asp.net - 无法在 Windows 上的 Linux docker 中配置 ASP.NET HTTPS 端点

javascript - 没有 MicrosoftAjax.js 和 MicrosoftMvcAjax.js 的 ASP.NET MVC

C# Linq 到 SQL :cannot add an entity that already exists

c# - 静态数据表内存何时被处置

iis-7.5 - IISExpress 用户界面

c# - 如何根据泛型 T 的类型返回一个值

asp.net - WCF POST 服务 500 内部服务器错误