Пример, который я вижу везде для маршрутизации в стиле 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()
));
}
К какой RouteCollection помимо RouteTable.Routes будет добавлен маршрут? Разве RouteTable.Routes не является 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? Опять же, к какой другой коллекции RouteCollection будет добавлен этот IRouteHandler?