rutas ASP.NET MVC tienen nombres cuando mapeado:¿Cómo puedo obtener el nombre de la ruta en el controlador en 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 });
¿Hay una manera de obtener el nombre de la ruta, por ejemplo, "Depurar" en el ejemplo anterior? Me gustaría acceder a él en OnActionExecuting del controlador para poder configurar cosas en ViewData al depurar, por ejemplo, prefijando una URL con/debug/...
Solución fresca, aunque parece una supervisión que MVC no le da acceso. Tiene razón: puede crear un enlace de ruta especificando el nombre, por lo que se almacena en algún lugar :-) –
Este no es el propósito del nombre de la ruta en primer lugar. El nombre está destinado a proporcionar un índice al generar una URL usando enrutamiento que le permite especificar qué ruta usar. DataTokens es realmente la forma correcta de hacerlo. Por ejemplo, supongamos que tiene múltiples rutas "Debug". No podría usar el nombre para eso de todos modos. Pero siempre puedes crear tus propios tokens de datos. El enrutamiento ignora los tokens de datos pero los transfiere para que tu código pueda interpretar su significado. – Haacked
todavía es un descuido por dos razones: primero, las personas aparentemente lo encuentran útil y segundo, ¿por qué MapRoute toma el nombre como argumento pero al construir una nueva ruta con un constructor no hay ningún argumento de nombre en él? – mare