2011-07-28 24 views
1

私のレイアウトに@Html.Action()があり、コントローラのアクションにブレークポイントを設定すると、2回呼び出されていることがわかります(1つはコントローラ全体のアクションの一部として、私のメインViewを返します。 @Renderbody()コールにある)。アクションが2回呼び出されました

これは、ユーザーロールに応じてアクションから返された部分的なビューがレイアウト内の適切な場所に2回表示されるようになります(@Html.Action()の呼び出しはページの残りの部分。次の@Html.Action()呼び出しはレイアウトに示されているメインページ内にあるところの前に

私はそれが@Renderbody()がコントローラから返されたすべての部分のビューを表示するとは何かを持っていると仮定しますが、私は考えている。

上の任意のポインタこれが本当であれば、どうすればアクションを使わずにメニューを表示できますか?

+0

こんにちは、私は@Htmlを使用していますレイアウト上での動作(例えば、言語、ユーザー設定を許可する)、決して2回呼び出さないでください。どうすればいいか分かりますか? –

答えて

5

部分ビュー(一部のデータを処理した後)をレンダリングするためにを使用してActionResultと呼んでいたのと同じ状況がありましたが、レイアウトは2回繰り返されました。これを修正するには、ActionResultPartialViewResultに変更する必要がありましたが、どちらも部分ビューを返していましたが、前者はビューを返しているかのように扱いました...

+0

うん、それはソートされています。 – cjk

関連する問題