2015-09-12 21 views

risposta

14

alla fine ho trovato la risposta qui descritto: https://github.com/aspnet/Announcements/issues/28

è possibile importare il ViewContext utilizzando iniezione proprietà utilizzando un nuovo attributo. È necessario creare una proprietà in voi tag classe di supporto in questo modo:

[ViewContext] 
public ViewContext ViewContext { get; set; } 

si può quindi accedere al controller o azione in corso in questo modo:

var pageController = ViewContext.RouteData.Values["controller"]; 
var pageAction = ViewContext.RouteData.Values["action"]; 

Forse ho postato questa domanda prima di fare abbastanza ricerca, ma questo non era del tutto ovvio, quindi spero che questo aiuti qualcun altro!

+0

il modo in cui lo sto facendo è passare queste cose come attributi al mio taghelper allo stesso modo in cui Microsoft lo fa per AnchorTagHelper ie asp-controller e asp-action in modo che il consumatore del mio taghelper possa specificarlo piuttosto che assumendo di utilizzare lo stesso della richiesta corrente. –

+0

Grazie Joe - solo per chiarire, lo sto facendo anch'io. Sto confrontando ciò che è nei dati del percorso per asp-controller e asp-action per vedere se il link in questione è attualmente attivo. esalta il menu. Quindi se questa è una vista del rasoio condivisa che non puoi passare a quella attualmente attiva, deve essere dinamica. Spero che abbia un senso. –

+0

@Joe - anche se ti interessa nominarli asp-controller o semplicemente controller? Non sono sicuro se dovrei usare il prefisso asp o no. Ho sollevato http://stackoverflow.com/questions/32532734/should-my-custom-asp-net-5-mvc-6-tag-helpers-have-an-asp-prefix ma è stato messo in attesa sfortunatamente (per incitando una guerra religiosa o qualcosa sulle opinioni) –

Problemi correlati