我到处看到MVC样式路由的例子是这样的:
void Application_Start(object sender, EventArgs e)
{
RegisterRoutes(RouteTable.Routes);
}
public static void RegisterRoutes(RouteCollection routes)
{
routes.Add(new Route
(
"Category/{action}/{categoryName}"
, new CategoryRouteHandler()
));
}
将RouteTable.Routes集合传递给RegisterRoutes()的原因是什么?为什么不呢:
void Application_Start(object sender, EventArgs e)
{
RegisterRoutes();
}
public static void RegisterRoutes()
{
RouteTable.Routes.Add(new Route
(
"Category/{action}/{categoryName}"
, new CategoryRouteHandler()
));
}
RouteTable.Routes除了路由之外还会添加什么RouteCollection?不是RouteTable.Routes 该 Web应用程序的RouteCollection?
我有一个特殊的IRouteHandler,它有一个Map()方法:
public class ChatRouteHandler : IRouteHandler
{
private static bool mapped;
public void Map()
{
if (!ChatRouteHandler.mapped)
{
RouteTable.Routes.Add
(
new Route("chat/{room}/{date}",
new ChatRouteHandler())
);
}
}
是否有理由认为Map()应该接受RouteCollection而不是添加到RouteTable.Routes集合?再次,这个IRouteHandler会添加什么其他RouteCollection?