views:

41

answers:

2

Say I want to remove any mapped routes for files with a certain file extension.

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

Works for any file that has the extension .hello in the root directory, however as soon as i go into any subfolders the 'ignore' rule isn't applied.

Ive tried lots of different combinations, but can't seem to get one that doesn't throw a compiler exception, or not work?

+1  A: 

Check out Phil's blog regarding this. Basically, you would do something like this:

Example 1: Do not perform routing for any request for all .aspx files:

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

Example 2: Do not perform routing for any request for favicon.ico

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

If you're using ASP.NET MVC, use IgnoreRoutes (MVC Extension method)

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

If you're using ASP.NET Web Forms, use StopRoutingHandler which implements IRouteHandler.

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