2011-10-07 19 views
9

Estoy usando algunas clases de terceros. Quiero obtener los valores de ruta de mi controlador en eso. Lamentablemente, no me pasa el controlador actual que se está ejecutando. ¿Puedo obtenerlo de HttpContext?¿Puedo obtener el controlador de ejecución actual de HttpContext?

La clase se ve algo como:

public class ServiceStationVisibilityProvider 
     : ISiteMapNodeVisibilityProvider 
    { 

     public bool IsVisible(SiteMapNode node, HttpContext context, IDictionary<string, object> sourceMetadata) 
     { 
      node.Title = DateTime.Now.ToString(); //need to access routevalues and set title 
      return true; 
     } 

Ahora podría manully inspeccionar Request.RawUrl y analizar y hacer las cosas cobardes. Sin embargo, no quiero escribir ese tipo y me meto en problemas más tarde cuando la aplicación crece. }

Respuesta

8

Puede buscar los valores de "controller" y "action" en este objeto

HttpContext.Request.RequestContext.RouteData.Values 
7

No estoy seguro en qué contexto se está ejecutando, pero se puede obtener de la RequestContext:

RequestContext.RouteData.Values["controller"].ToString() 
Cuestiones relacionadas