L'exemple que je vois partout pour le routage de style MVC est quelque chose comme ceci:RouteTable.Routes RouteCollection?
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()
));
}
Quelle est la raison de passer la collection RouteTable.Routes à RegisterRoutes()? Pourquoi ne pas simplement:
void Application_Start(object sender, EventArgs e)
{
RegisterRoutes();
}
public static void RegisterRoutes()
{
RouteTable.Routes.Add(new Route
(
"Category/{action}/{categoryName}"
, new CategoryRouteHandler()
));
}
En plus de RouteTable.Routes, quelle RouteCable serait ajoutée? RouteTable.Routes RouteCollection pour l'application Web?
J'ai un IRouteHandler particulier a une méthode 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())
);
}
}
Y at-il une raison pour laquelle la carte() doit accepter un RouteCollection et ne pas ajouter à la collection RouteTable.Routes? Encore une fois, à quelle autre RouteCollection cet IRouteHandler serait-il ajouté?
Je peux vraiment voir comment cela pourrait affecter les conceptions de classe. Pouvez-vous recommander un exemple ou une illustration de test unitaire pour un RouteCollection ou IRouteHandler? Après tout, un test unitaire ne pouvait-il pas apparaître dans RouteTable.Routes? – core
Haacked a une bonne démo de tests unitaires pour les routes. http://haacked.com/archive/2007/12/17/testing-routes-in-asp.net-mvc.aspx Lors de mon travail, un collègue a dérivé RouteCollection pour faire quelque chose de similaire. – CVertex
Merci pour le lien. Appréciez-le. En ce qui concerne Map(), je suis un peu confus. Y at-il une méthode d'extension Map() sur MvcHandler ou quelque chose? Je suis complètement nouveau à MVC. – core