假设我想删除具有特定文件扩展名的文件的任何映射路由。
RouteTable.Routes.Ignore("{root}.hello");
适用于根目录中具有扩展名.hello
的任何文件,但是只要我进入任何子文件夹,就不会应用“忽略”规则。
我尝试了很多不同的组合,但似乎无法获得一个不会抛出编译器异常或无法工作的组合?
答案 0 :(得分:15)
请查看Phil's blog。基本上,你会做这样的事情:
示例1:不要对所有.aspx文件的任何请求执行路由:
routes.IgnoreRoute("{*allaspx}", new {allaspx=@".*\.aspx(/.*)?"});
示例2:不要对favicon.ico的任何请求执行路由
routes.IgnoreRoute("{*favicon}", new {favicon=@"(.*/)?favicon.ico(/.*)?"});
答案 1 :(得分:4)
如果您正在使用ASP.NET MVC,请使用IgnoreRoutes(MVC扩展方法)
Routes.IgnoreRoute("{*foo*}", new { foo = @"someregextoignorewhatyouwant"});
如果您使用的是ASP.NET Web窗体,请使用实现IRouteHandler的StopRoutingHandler。
routes.Add(new Route("*someregextoignorewhatyouwant*", new StopRoutingHandler()));