2011-10-07 8 views
9

Sto usando alcune classi di terze parti. Voglio ottenere i routevalues ​​del mio controller in questo. Sfortunatamente non mi passa il controller attuale che sta eseguendo. Posso ottenerlo da HttpContext?Posso ottenere il controller in esecuzione corrente da HttpContext?

La classe simile a:

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; 
     } 

Ora potevo manully ispezionare Request.RawUrl e analizzare e fare le cose funky. Tuttavia, non voglio scrivere quel tipo e cadere nei guai più tardi quando l'applicazione cresce. }

risposta

8

È possibile cercare i valori di "controller" e "action" in questo oggetto

HttpContext.Request.RequestContext.RouteData.Values 
7

Non so in quale contesto si sta eseguendo, ma si può ottenere dal RequestContext:

RequestContext.RouteData.Values["controller"].ToString() 
Problemi correlati