routes ASP.NET MVC ont des noms lors de la projection:Comment puis-je obtenir le nom de la route dans le contrôleur dans ASP.NET MVC?
routes.MapRoute(
"Debug", // Route name -- how can I use this later????
"debug/{controller}/{action}/{id}",
new { controller = "Home", action = "Index", id = string.Empty });
est-il un moyen d'obtenir le nom de la route, par exemple "Debug" dans l'exemple ci-dessus? Je souhaite y accéder dans OnActionExecuting du contrôleur afin de pouvoir configurer des éléments dans ViewData lors du débogage, par exemple, en préfixant une URL avec/debug/...
Cool solution de contournement, bien qu'il semble être un oubli que MVC ne donne pas accès à elle. Vous avez raison - vous pouvez créer un lien d'itinéraire en spécifiant le nom, donc il est stocké quelque part :-) –
Ce n'est pas le but du nom de l'itinéraire en premier lieu. Le nom est destiné à fournir un index lors de la génération d'une URL à l'aide du routage qui vous permet de spécifier la route à utiliser. DataTokens est vraiment la bonne façon de le faire. Par exemple, supposons que vous ayez plusieurs routes "Debug". Vous ne pouvez pas utiliser de nom de toute façon. Mais vous pouvez toujours créer vos propres jetons de données. Le routage ignore les jetons de données mais les transmet pour que votre code puisse interpréter ce qu'ils signifient. – Haacked
encore est un oubli pour deux raisons: d'abord, les gens le trouvent apparemment utile et deuxièmement, pourquoi MapRoute prend le nom comme argument, mais lors de la construction d'une nouvelle route avec un constructeur, il n'y a pas d'argument Name. – mare