【发布时间】:2011-03-10 12:44:08
【问题描述】:
我在 Web 窗体方案中处理此代码:
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);
【问题讨论】: