ASP.NET 路由 - 忽略具有特定扩展名的文件的路由,无论目录如何
Posted
技术标签:
【中文标题】ASP.NET 路由 - 忽略具有特定扩展名的文件的路由,无论目录如何【英文标题】:ASP.NET Routing - Ignore routes for files with specific extension, regardless of directory 【发布时间】:2011-03-14 18:54:41 【问题描述】:假设我想删除具有特定文件扩展名的文件的所有映射路由。
RouteTable.Routes.Ignore("root.hello");
适用于根目录中扩展名为 .hello
的任何文件,但是一旦我进入任何子文件夹,则不会应用“忽略”规则。
我尝试了很多不同的组合,但似乎找不到一个不会引发编译器异常或不起作用的组合?
【问题讨论】:
【参考方案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()));
【讨论】:
以上是关于ASP.NET 路由 - 忽略具有特定扩展名的文件的路由,无论目录如何的主要内容,如果未能解决你的问题,请参考以下文章