我正在尝试为404错误创建自定义错误页面。我在Global.asax.cs中实现了Application_Error方法。在大多数情况下,这非常有用,但是不会调用具有4个或更多路径段的URL。
我遇到问题的具体网址是:
http://localhost/Area/Controller/Action/ID
如果我删除了ID,我的自定义404年龄加载正常。问题似乎是我的路径中有4个级别(/ Area / Controller / Action / ID)。有什么想法吗?
答案 0 :(得分:12)
我怀疑您的路线没有考虑包含4个部分的网址。尝试添加一个捕获所有路径作为您的最后路径来测试它:
routes.MapRoute("Error404", "{*url}", new {controller = "Error", action = "PageNotFound" } );
在RouteConfig.cs问题中包含(部分)路线也可能有所帮助。
答案 1 :(得分:0)
设置IIS的自定义错误页面:在IIS中右键单击您的网站/虚拟目录 - >属性 - >自定义错误标签 - >将404错误设置为错误页面。
您的自定义错误只会针对符合您的路线规则的内容触发。一旦所有路由规则都失败并且在该路径上找不到页面,它就会将错误传递给IIS。然后,IIS将404规则用于未找到的对象,因此您必须覆盖该规则并将其指向项目中的自定义404。
答案 2 :(得分:-1)
您是否收到了IIS错误页面?试试这个。