RouteCollection和路由表之间有什么区别

时间:2013-05-22 12:18:50

标签: asp.net-mvc asp.net-mvc-3 asp.net-mvc-4 asp.net-mvc-2

你能说出RouteCollection和路由表之间的区别吗?

我在Google上搜索了很多东西。但是找不到任何参考资料。

1 个答案:

答案 0 :(得分:7)

RouteTable是一个存储应用程序URL路由的类。

RouteCollection提供了在将URI映射到控制器操作时要使用的路由信息​​的集合。

RouteTable包含一个名为Routes的属性,该属性将返回RouteCollectionRouteTable使用RouteCollection来存储将URI准确定向到正确的控制器操作所需的所有URL路由信息。

在global.asax中,您将通过指定以下内容来注册将映射到各种控制器操作的路由:

/// <summary>
/// Executed when the application starts.
/// </summary>
protected void Application_Start()
{
   RegisterRoutes(RouteTable.Routes);
}

然后,路线将以下列方式添加到RouteCollection

/// <summary>
/// Registers the routes used by the application.
/// </summary>
/// <param name="routes">Routes to register.</param>
public static void RegisterRoutes(RouteCollection routes)
{
   routes.MapRoute(
     "Error", 
     "Error", 
     new { controller = "Error", action = "Error" });
}

这显示了实际路径信息如何存储在RouteCollection中,而RouteTable又通过{{1}}引用。