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!
fonte
2015-09-13 11:34:21
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. –
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. –
@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) –