2010-07-12 10 views
12

Dire che voglio rimuovere percorsi mappati per file con una determinata estensione di file.Instradamento ASP.NET - Ignora percorsi per file con estensione specifica, indipendentemente dalla directory

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

funziona per qualsiasi file con l'estensione .hello nella directory principale, tuttavia, non appena entro in eventuali sottocartelle non viene applicata la regola 'ignorare'.

Ive ha provato molte combinazioni diverse, ma non riesco a ottenere quello che non genera un'eccezione del compilatore o non funziona?

risposta

14

Check out Phil's blog a riguardo. In sostanza, si potrebbe fare qualcosa di simile:

Esempio 1: Non eseguire il routing per qualsiasi richiesta per tutti i file aspx:

routes.IgnoreRoute("{*allaspx}", new {[email protected]".*\.aspx(/.*)?"}); 

Esempio 2: Non eseguire il routing per qualsiasi richiesta di favicon.ico

routes.IgnoreRoute("{*favicon}", new {[email protected]"(.*/)?favicon.ico(/.*)?"}); 
4

Se stai usando ASP.NET MVC, uso IgnoreRoutes (MVC metodo di estensione)

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

Se si utilizzano moduli Web ASP.NET, utilizzare StopRoutingHandler che implementa IRouteHandler.

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