你能说出RouteCollection和路由表之间的区别吗?
我在Google上搜索了很多东西。但是找不到任何参考资料。
答案 0 :(得分:7)
RouteTable
是一个存储应用程序URL路由的类。
RouteCollection
提供了在将URI映射到控制器操作时要使用的路由信息的集合。
RouteTable
包含一个名为Routes
的属性,该属性将返回RouteCollection
。 RouteTable
使用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}}引用。