加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – ASP.NET MVC 3:RouteExistingFiles = true似乎

发布时间:2020-12-15 22:20:56 所属栏目:asp.Net 来源:网络整理
导读:我正在努力了解RouteExistingFiles的工作原理. 所以我创建了一个新的MVC 3互联网项目(MVC 4的行为方式相同),并将一个 HTMLPage.html文件放到我的项目的内容文件夹. 现在我去了Global.Asax文件并编辑了Re??gisterRoutes函数,看起来像这样: public static voi
我正在努力了解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的内容.
当我请求像?/ Content / HTMLPage这样的URL时,我按预期得到索引页,但是当我添加一个.html或.txt文件扩展名时,会显示内容(如果该文件不存在,则为404错误) .
如果有任何人可以在VS2012中查看,请告知我们您获得的结果.
谢谢.

解决方法

要启用静态文件的路由,您必须执行以下步骤.

在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(内容文件夹中的内容)也是最终在您的控制器的操作中.你不会喜欢的东西

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读