【问题标题】:ASP.NET Routing - Ignore routes for files with specific extension, regardless of directoryASP.NET 路由 - 忽略具有特定扩展名的文件的路由,无论目录如何
【发布时间】:2011-03-14 18:54:41
【问题描述】:

假设我想删除具有特定文件扩展名的文件的所有映射路由。

 RouteTable.Routes.Ignore("{root}.hello");

适用于根目录中扩展名为 .hello 的任何文件,但是一旦我进入任何子文件夹,则不会应用“忽略”规则。

我尝试了很多不同的组合,但似乎找不到一个不会引发编译器异常或不起作用的组合?

【问题讨论】:

    标签: c# asp.net asp.net-mvc routing


    【解决方案1】:

    请查看Phil's blog 关于此。基本上,你会做这样的事情:

    示例 1:不对所有 .aspx 文件的任何请求执行路由:

    routes.IgnoreRoute("{*allaspx}", new {allaspx=@".*\.aspx(/.*)?"});
    

    示例 2:不对 favicon.ico 的任何请求执行路由

    routes.IgnoreRoute("{*favicon}", new {favicon=@"(.*/)?favicon.ico(/.*)?"});
    

    【讨论】:

      【解决方案2】:

      如果您使用的是 ASP.NET MVC,请使用 IgnoreRoutes(MVC 扩展方法)

      Routes.IgnoreRoute("{*foo*}", new { foo = @"someregextoignorewhatyouwant"});
      

      如果您使用的是 ASP.NET Web 窗体,请使用实现 IRouteHandler 的 StopRoutingHandler。

      routes.Add(new Route("*someregextoignorewhatyouwant*", new StopRoutingHandler()));
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-06-08
        • 2015-10-25
        • 2014-02-14
        • 1970-01-01
        • 1970-01-01
        • 2014-04-10
        • 1970-01-01
        • 2013-04-26
        相关资源
        最近更新 更多