2012-08-10 8 views
12

Ich habe eine Teilansicht als Teil der _Layout.cshtml, so dass es auf mehreren Seiten gerendert wird. Stellen Sie sich die Teilansicht als Menü vor, das auf jeder Seite der Website angezeigt wird.Wie bekomme ich die Elternansicht aus der Teilansicht

Wenn einer dieser Links im Menü der Teilansicht geklickt wird, kann ich nur den Zugriff/sehen in der Aktion Methode, die die Teilansicht aufgerufen wird, wie der Name schon usw.

Aber was ich wirklich brauchen zu haben ist die Ansicht, dass die Teilansicht aktiviert war, als auf den Artikel geklickt wurde.

Wie kann ich das bekommen?

+0

brauchen Wenn ich Sie richtig verstehe. Du willst den Namen von t bekommen er sieht, dass die Teilansicht gerendert wird? Wird es nicht im Layout gerendert? –

+0

Das ist richtig: Ich bin auf einer bestimmten Seite, die die Teilansicht hat, und ich möchte wissen, was diese bestimmte Seite ist. Diese Links, über die ich sprach, sind Spracheinstellungen, daher möchte ich die Sprache in der Aktionsmethode einstellen und dann zurück zu der Seite umleiten, von der sie kam (in einer anderen Sprache). Um dies zu tun, habe ich einen separaten Controller, um damit umzugehen, aber ich bekomme nur die Teilansicht, nicht die Ansicht, auf der es war. –

Antwort

22

können Sie ParentActionContext

Für

Beispiel verwenden
var controller = ControllerContext.ParentActionViewContext.RouteData.Values["Controller"] as string; 
var action = ControllerContext.ParentActionViewContext.RouteData.Values["Action"] as string; 

aktualisieren

Aus Sicht sollte dieser Aufruf tun, was Sie

@HttpContext.Current.Request.RequestContext.RouteData.Values["controller"].ToString() 
@HttpContext.Current.Request.RequestContext.RouteData.Values["action"].ToString() 
+0

ParentActionViewContext scheint in meiner Aktionsmethode null zu sein, also kein Glück da ... + Spaceballs ist großartig - "Ich habe dich nicht wieder mit deinen Puppen spielen sehen!" –

+0

Ich glaube mein Fehler ist, dass der Code in der Steuerung funktioniert, ich habe updated, um einen anderen Anruf von der Ansicht zu verwenden (BTW Sapeceball FTW :)) – Iridio

Verwandte Themen