asp.net-mvc – 具有长不存在的URL的ASP.NET MVC 5 – (HTTP错误
我在Microsoft Visual Studio Express 2013 for Web中创建了一个新项目.
它是一个ASP.NET MVC 5 – .NET Framework 4.5项目. 我想要处理(资源无法找到): 我使用下面的代码处理它. 如果我执行类似(/ Home / kddiede / ddiij)或(/ djdied / djie / djs)的这个代码,这将导致显示我的自定义错误页面. 但是,当我尝试像(/ Home / kddiede / ddiij / dfd / sdfds / dsf / dsfds / fd)等任何长时间不存在的URL时,它会显示: 代码从:http://www.codeproject.com/Articles/635324/Another-set-of-ASP-NET-MVC-4-tips 提示16:自定义错误屏幕 错误页面在/View/Shared/Error.cshtml中 Web.config文件 <system.web> <customErrors mode="RemoteOnly" /> </system.web> Global.asax中 protected void Application_EndRequest(Object sender,EventArgs e) { ErrorConfig.Handle(Context); } ErrorConfig类 public class ErrorConfig { public static void Handle(HttpContext context) { switch (context.Response.StatusCode) { //Not authorized case 401: Show(context,401); break; //Not found case 404: Show(context,404); break; } } static void Show(HttpContext context,Int32 code) { context.Response.Clear(); var w = new HttpContextWrapper(context); var c = new ErrorController() as IController; var rd = new RouteData(); rd.Values["controller"] = "Error"; rd.Values["action"] = "Index"; rd.Values["id"] = code.ToString(); c.Execute(new RequestContext(w,rd)); } } ErrorController internal class ErrorController : Controller { [HttpGet] public ViewResult Index(Int32? id) { var statusCode = id.HasValue ? id.Value : 500; var error = new HandleErrorInfo(new Exception("An exception with error " + statusCode + " occurred!"),"Error","Index"); return View("Error",error); } } 来自上述网站的最后一段代码没有添加到Global.asax中,因为它已经在FilterConfig.cs中 public static void RegisterGlobalFilters(GlobalFilterCollection filters) { filters.Add(new HandleErrorAttribute()); } 任何人都知道如何解决它? 提前致谢. 解决方法
解决了.要将所有不存在的网址指向错误页面,请执行以下操作:
>在RouteConfig.cs文件的末尾添加下面的代码: public static void RegisterRoutes(RouteCollection routes) { // Default routes.MapRoute( name: "Default",url: "{controller}/{action}/{id}",defaults: new { controller = "Home",action = "Index",id = UrlParameter.Optional } ); // Add this code to handle non-existing urls routes.MapRoute( name: "404-PageNotFound",// This will handle any non-existing urls url: "{*url}",// "Shared" is the name of your error controller,and "Error" is the action/page // that handles all your custom errors defaults: new { controller = "Shared",action = "Error" } ); } >将以下代码添加到Web.config文件中: <configuration> <system.webServer> <modules runAllManagedModulesForAllRequests="true"></modules> </system.webServer> <system.web> <httpRuntime relaxedUrlToFileSystemMapping="true" /> </system.web> </configuration> 这应该将所有不存在的URL(/ad/asd/sa/das,d/asd,asd.asd dpwd’= 12 = 2e-21)指向错误页面. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – 如何使用UpdateModel进行单元测试操作而不进
- asp.net-mvc – mvc web应用程序应该是3层吗?
- asp.net – 为什么在“Glimpse Web Debugger”中没有显示“
- asp.net-mvc – 大型Web应用程序中的Windows Workflow用法
- asp.net-mvc-3 – Appharbor URL中的端口号导致页面/内容无
- asp.net-mvc – 如何在mvc中保持视图不受授权逻辑的影响?
- 从代码隐藏调用ASP.NET Web API
- asp.net-mvc – JQuery中的ViewBag
- asp.net – 如何在C#2.0中的Web.config中加密用户名和密码
- ASP.net:我可以在bin文件夹中拥有2个不同版本的相同dll /
- asp.net-mvc – VS2008中的“publish …”动作是
- asp.net-mvc – 引用不同版本的Json.NET DLL
- 如何通过asp.net mvc或jquery提交包含动态数据行
- asp.net-mvc – ASP.NET MVC和LINQ一般问题
- asp.net-mvc – 使用部分页面的PagedList.MVC中的
- ASP.NET MVC实现layui富文本编辑器应用
- asp.net – 我应该加密URL参数传递的GUID吗?
- js_html_input中autocomplete="off"在ch
- 配置 – ASP.NET Web Api:项目需要SQL Server E
- asp-classic – 在常规ASP中关闭SQL连接