asp.net-mvc – MVC:404路由在生产中无法正常工作
我在global.asax的底部有以下路由:
//404 ERRORS: routes.MapRoute( "404-PageNotFound","{*url}",new { controller = "Error",action = "PageNotFound" } ); 哪个在Visual Studio中工作正常,但在生产中我得到了IIS错误页面. 这条路线不应该捕获任何未被其他人捕获的URL,因此从IIS的角度来看没有404吗?我还需要在web.config中做些什么吗? 注意:我不想重定向到特定于404的URL;而是我在请求的URL上提供404错误页面(我认为从可用性的角度来看这是正确的方法). UPDATE 修订过的问题 **解** > web.config(duh!)中需要启用自定义错误 让它无处不在 [HandleError] public ActionResult NotFound() { Response.StatusCode = 404; Response.TrySkipIisCustomErrors = true; return View("PageNotFound",SearchUtilities.GetPageNotFoundModel(HttpContext.Request.RawUrl)); } 并且在任何继承基础的控制器动作中,每当我捕获无效的路由参数时,我只需要调用它: return NotFound(); 注意:不是RedirectToAction() 蛋糕上的结冰: 解决方法
问题是您的请求与之前的某个路由匹配,然后失败.一种可能的解决方案是尝试约束其他路由,如下所示:
// This will match too many things,so let's constrain it to those we know are valid routes.MapRoute( "Default","{controller}/{action}/{id}",new { controller = "Home",action = "Index",id = UrlParameter.Optional },new { controller = "Home|OtherController|AnotherController|..." } // regular expression matching all valid controllers ); //404 ERRORS: routes.MapRoute( "404-PageNotFound",action = "PageNotFound" } ); 如果你想要一个更全面的答案,那么看看这个:How can I properly handle 404 in ASP.NET MVC? 编辑: 要摆脱自定义IIS错误,请尝试将错误控制器更改为: Response.StatusCode = 404; Response.TrySkipIisCustomErrors=true; // add this line MSDN doc:http://msdn.microsoft.com/en-us/library/system.web.httpresponse.tryskipiiscustomerrors.aspx (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – 使用ASP.NET MVC v2 EditorFor和DisplayFor
- asp.net-mvc – MVC / Unity – 如何将依赖项注入自定义Fil
- asp.net – 如何处理从“DBNull”类型到“String”类型的转
- asp.net-mvc – 如何使用Castle.Windsor传递带有依赖注入的
- 设置ASP.NET(Visual Studio)服务器配置的默认页面
- 在ASP.NET MVC2创建方法中使用FormCollection的正确方法?
- asp.net – MembershipProvider在代码中更改连接字符串
- asp-classic – msxml服务器端经典ASP和证书
- asp.net-mvc – 无法在asp.net mvc中映射robots.txt的路由
- asp.net – 我可以获得有关JavaScript代理的一些建议吗?
- asp.net-mvc – 是否有可能在每次验证后使ASP.NE
- asp.net-mvc-3 – 避免服务器端Razor视图和客户端
- ASP.NET MVC4异步聊天室
- asp.net-mvc-4 – 组合ASP.NET MVC4捆绑和requir
- Asp.NET控制文件上传的大小方法(超简单)
- asp.net – 如何在Identity 3.0中获取当前的User
- asp.net-mvc – MVC中的部分视图
- asp.net-mvc – ASP.NET MVC 3 Treeview
- 在ASP.NET MVC中使用<%$%>
- asp.net-mvc – MVC5 Html.RenderAction与不同的