2012-08-10 29 views
12

_Layout.cshtmlの一部として部分的なビューがあるので、複数のページにレンダリングされます。部分ビューはウェブサイトのすべてのページに表示されるメニューと考えることができます。部分ビューのメニューでこれらのリンクの1つがクリックされたとき、それは私が本当に必要なものの名前など部分ビューから親ビューを取得する方法

だ。しかしよう

、私は唯一のアクセス/、部分図を呼び出されるアクションメソッドで見ることができますアイテムがクリックされたときに部分ビューがオンになっているビューです。

どうすれば入手できますか?

+0

を必要とするものを更新

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

たとえば

についてParentActionContext

この呼び出しが何をすべきビューから

を使用することができます。あなたはtの名前を知りたい彼は部分的なビューがレンダリングされていると見ますか?それはレイアウトでレンダリングされていませんか? –

+0

それは正しいです:私は部分的なビューを持っている特定のページにいます、そして、その特定のページが何であるか知りたいです。 私が話していたこれらのリンクは言語設定なので、アクションメソッドで言語を設定してから、別の言語のページにリダイレクトします。 これを行うには、これを処理する別のコントローラがありますが、部分ビューのみを取得し、ビューは表示されません。 –

答えて

22

あなたは私が正しくあなたを理解していれば、あなたが

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

ParentActionViewContextは私のアクションメソッドではnullのようですので、そこには運がありません... + Spaceballsは素晴らしいです - "私はあなたの人形で遊ぶのを見ていませんでした! –

+0

私の間違いは、コードがコントローラで動作することです。私はビューから別の呼び出しを使用するようにupdatetdしました(BTW Sapeceball FTW :)) – Iridio

関連する問題