2010-07-12 2 views
12

Angenommen, ich möchte alle zugeordneten Routen für Dateien mit einer bestimmten Dateierweiterung entfernen.ASP.NET Routing - Ignorieren Routen für Dateien mit bestimmter Erweiterung, unabhängig von Verzeichnis

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

Works für jede Datei, die die Erweiterung .hello im Root-Verzeichnis hat, aber sobald ich alle Unterordner gehe in der ‚ignore‘ Regel nicht angewandt wird.

Ich habe viele verschiedene Kombinationen ausprobiert, aber kann nicht scheinen, um eine zu bekommen, die keine Compiler-Ausnahme wirft, oder nicht funktioniert?

Antwort

14

Überprüfen Sie Phil's blog diesbezüglich. Grundsätzlich würden Sie so etwas tun:

Beispiel 1: Führen Sie keine Routing für jede Anforderung für alle ASPX-Dateien:

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

Beispiel 2: Führen Sie keine Routing für jede Anforderung für favicon.ico

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

Wenn Sie mit ASP.NET MVC, verwenden IgnoreRoutes (MVC-Extension-Methode)

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

Wenn Sie ASP.NET Web Forms verwenden, verwenden Sie StopRoutingHandler, der IRouteHandler implementiert.

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