2015-08-03 8 views
5

Jaka jest prawidłowa składnia metody RouteConfig.RegisterRoutes w aplikacji ASP.NET MVC, jeśli chcę, aby aplikacja ignorowała wszystkie adresy URL zaczynające się od słowa " zdobyć”jakJak zignorować określoną trasę w routerze ASP.NET MVC

http://myserver/score*.*

?

Innymi słowy, każdy adres URL, który zaczyna się od tekstu "ocena" Chcę, aby moja aplikacja zignorowała.

Próbowałem:

routes.IgnoreRoute("score*.*/{*pathInfo}"); 

Próbowałem też kilka innych kombinacji tej składni, ale nie dość zrobić to dobrze.

Oto, co mam do tej pory w moim RouteConfig. To normalne rzeczy.

public class RouteConfig 
{ 
    public static void RegisterRoutes(RouteCollection routes) 
    { 
     routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 

     routes.MapRoute(
      name: "Default", 
      url: "{controller}/{action}/{id}", 
      defaults: new { controller = "Order", action = "Add", id = UrlParameter.Optional } 
     ); 
    } 
} 
+4

Co chcesz zrobić z ASP.NET MVC, gdy zażądasz zignorowanej trasy, zwrócisz 404? –

+0

Czy możesz pokazać swoją pełną konfigurację trasy? Aby upewnić się, że coś innego przeszkadza ... – timothyclifford

+0

Zaktualizowałem moje pytanie, aby wyświetlić całą konfigurację routingu. – Ray

Odpowiedz

4

należy umieścić swój wynik * jako wyrażenie regex w IgnoreRoute.

routes.IgnoreRoute("{score}/{*pathInfo}", new { score = @"score*.*" }); 

Dla bardziej ogólnych odpowiedzi, można użyć tego wzoru do ignorowania tras, które mają:

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

Tak więc dla score.js i score.txt trasa doda regEx, że filtry, które trasy.

Powiązane problemy