2015-09-12 4 views

Antwort

14

Schließlich fand ich die Antwort hier beschrieben: https://github.com/aspnet/Announcements/issues/28

Sie die Viewcontext importieren Eigenschaft Injektion unter Verwendung von ein neues Attribut verwenden. Sie benötigen eine Eigenschaft in Ihnen Tag Helfer Klasse wie folgt zu erstellen:

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

Vielleicht habe ich geschrieben, diese Frage vor genug Forschung,:

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

Sie dann die aktuellen Controller oder Aktion wie so zugreifen kann aber das war nicht ganz offensichtlich, also hoffe ich, dass dies jemand anderem hilft!

+0

die Art, wie ich es getan habe, ist in diesen Dingen als Attribute zu meinem Taghelper auf die gleiche Weise wie Microsoft es für AnchorTagHelper dh Asp-Controller und Asp-Aktion übergeben, so dass der Verbraucher meiner Taghelper es anstelle angeben kann vorausgesetzt, dass Sie dasselbe wie die aktuelle Anfrage verwenden. –

+0

Danke Joe - nur um klarzustellen, ich mache das auch. Ich vergleiche, was in den Routendaten mit dem Asp-Controller und Asp-Aktion ist, um zu sehen, ob der fragliche Link derzeit aktiv ist. h. im Menü hervorheben. Wenn es sich also um eine geteilte Rasiermesseransicht handelt, können Sie die gerade aktive nicht weitergeben, sie muss dynamisch sein. Hoffnung, die Sinn macht. –

+0

@Joe - auch, aus Interesse nennst du sie Asp-Controller oder nur Controller? Ich bin mir nicht sicher, ob ich das asp-Präfix verwenden soll oder nicht. Ich habe http://stackoverflow.com/questions/32532734/should-my-custom-asp-net-5-mvc-6-tag-helpers-have-an-asp-prefix angesprochen, aber es wurde leider auf Eis gelegt (für Anstiftung zu einem religiösen Krieg oder etwas über Meinungen) –