Я имею дело с этим кодом в сценарии Web Forms:
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}");
}
Во-первых, может ли кто-нибудь сказать мне, где находится defintion {* pathInfo}? http://msdn.microsoft.com/en-us/library/cc668201.aspx#url_patterns не определяет его. Ли:
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
Match
/c/xyz.axd and
/b/c/xyz.axd and
/a/b/c/xyz.axd
В то время как
routes.IgnoreRoute("{resource}.axd");
Только совпадения
/xyz.axd
Во-вторых, в:
{*url}
Что означает *? И что означает выражение в целом. Есть ли где-то это ясно объяснено?
В-третьих, есть ли определенный порядок, который мне нужно добавить, чтобы правильно игнорировать маршруты? Я знаю, что {* url} - это нечто вроде catchall, если IgnoreRoutes приходят до или после него, например,
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.IgnoreRoute("{resource}.gif/{*pathInfo}");
Route r = new Route("{*url}", new MyRouteHandler());
routes.Add(r);