Кто-то может объяснить asp.net, направляющий синтаксис мне?

Я имею дело с этим кодом в сценарии Веб-форм:

  public static void RegisterRoutes(RouteCollection routes)
  {

    Route r = new Route("{*url}", new MyRouteHandler());
    routes.Add(r);
    routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
    routes.IgnoreRoute("{resource}.gif/{*pathInfo}");

  }

Во-первых, кто-либо может сказать мне, где определение {*pathInfo}? http://msdn.microsoft.com/en-us/library/cc668201.aspx#url_patterns действительно не определяет его. Делает:

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

Соответствие

/c/xyz.axd and 
/b/c/xyz.axd and
/a/b/c/xyz.axd 

Принимая во внимание, что

routes.IgnoreRoute("{resource}.axd");

Только соответствия

/xyz.axd

Во-вторых, в:

{*url}

Что делает * средний? И что в целом означает выражение. Есть ли где-нибудь, это ясно объяснено?

В-третьих, существует ли особый порядок, я должен добавить эти выражения для корректного игнорирования маршрутов? Я знаю {*url} некоторое вместилище, должен IgnoreRoutes приезжать прежде или после него, например,

routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.IgnoreRoute("{resource}.gif/{*pathInfo}");
Route r = new Route("{*url}", new MyRouteHandler());
routes.Add(r);

25
задан Petras 1 July 2010 в 09:23
поделиться

1 ответ

pathinfo - это просто ярлык для корзины. Так, например, {* pathinfo} говорит, что помещайте все после {resource} .axd / в pathinfo.

Маршруты выполняются в том порядке, в котором вы помещаете их в таблицу маршрутов, поэтому, если ваш самый первый маршрут является перехватом, все остальные никогда не будут выполняться.

2
ответ дан 28 November 2019 в 21:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: