asp.net-mvc – ASP.NET MVC 3:RouteExistingFiles = true似乎
我正在努力了解RouteExistingFiles的工作原理.
所以我创建了一个新的MVC 3互联网项目(MVC 4的行为方式相同),并将一个 HTMLPage.html文件放到我的项目的内容文件夹. 现在我去了Global.Asax文件并编辑了Re??gisterRoutes函数,看起来像这样: public static void RegisterRoutes(RouteCollection routes) { routes.RouteExistingFiles = true; //Look for routes before looking if a static file exists routes.MapRoute( "Default",// Route name "{controller}/{action}/{id}",// URL with parameters new {controller = "Home",action = "Index",id = UrlParameter.Optional} // Parameter defaults ); } 现在,当我要求一个本地主机:XXXX / Content / HTMLPage.html时,应该给我一个错误,因为没有“内容”控制器,并且该请求绝对命中默认模式.但是我看到我的HTMLPage. 更新: routes.MapRoute("","Content/{*anything}",new {controller = "Home",action = "Index"}); 它仍然显示了HTMLPage的内容. 解决方法
要启用静态文件的路由,您必须执行以下步骤.
在RouteConfig.cs中启用现有文件的路由 routes.RouteExistingFiles = true; 为您的路径添加一条路径(确保专用路径位于通用路径之上) routes.MapRoute( name: "staticFileRoute",url: "Public/{file}/",defaults: new { controller = "Home",action = "SomeAction" } ); 接下来配置您的应用程序,以便静态文件的请求由“TransferRequestHandler”处理.在Webconfig下的system.webServer>处理程序中添加以下条目. <add name="MyCustomUrlHandler2" path="Public/*" verb="GET" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" /> 根据您的要求,“路径”的值可以更通用或具体.但我喜欢它总是非常具体,根据需要.保持非常通用将阻止其他站点特定资源的服务,如.js或css文件.例如,如果将以上设置为path =“*”,则甚至请求即使是内部文件夹中的css(内容文件夹中的内容)也是最终在您的控制器的操作中.你不会喜欢的东西 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- ASP.NET:如何在没有任何子域的情况下获取域名?
- 在(asp.net wcf)Web应用程序中存储文件的最佳方法是什么
- asp.net – 当DataBind为Nullable DateTimeOffset和field为
- asp.net-mvc-3 – 来自控制器的ASP.NET MVC3 View的物理位置
- asp.net – 如何和在哪里调用Database.EnsureCreated和Data
- 难道调用ThreadPool.QueueUserWorkItem()的时候,真是必须
- asp.net – 在构造函数asp net中访问WebControls可标记的属
- asp.net – 如何在不使用FormsAuthentication.RedirectFrom
- ASP.NET ApplicationId
- asp.net-mvc – 如何确定视图是否为ASP.NET MVC中的GET或PO
- asp.net – web部署工具2.1和web部署3.5有什么区
- asp.net – “填充无效,不能删除”异常WebResour
- asp.net – CKEditor在更新面板中无法正常工作
- ASP.NET System.OutOfMemoryException
- asp.net删除文件session丢失
- asp.net – 可以使用__doPostBack()吗?
- asp.net-mvc – 如何在没有模型的情况下为@ Html
- ASP.NET用于生成会话ID?
- asp.net-mvc – ASP.NET MVC – 能够处理数组的自
- asp.net-mvc – MVC 3 Webgrid – 你如何隐藏不想