web-dev-qa-db-ja.com

@ Html.Partialを呼び出して、別のコントローラーに属する部分ビューを表示する

コンテンツページにレイアウト要素の共通パターンがあるASP.NET MVC 3アプリケーションを開発しています。ただし、ログインページはこのレイアウトに従っていないため、このレイアウトを\Views\Shared\_Layout.cshtmlに配置できません。

したがって、別の共有レイアウト、たとえば\Views\Shared\_Content.cshtmlを追加し、コンテンツビューから呼び出したいのですが...残念ながら、これらのビューは異なるコントローラーに属します。

別のコントローラーに属するビューに対して@Html.Partialを呼び出す方法はありますか?

85
pyon

それは問題ありません。

@Html.Partial("../Controller/View", model)

または

@Html.Partial("~/Views/Controller/View.cshtml", model)

トリックを行う必要があります。

(他の)コントローラーを通過させる場合は、次を使用できます。

@Html.Action("action", "controller", parameters)

または他のオーバーロードのいずれか

155
GvS

GvSが言ったように、しかし 強く型付けされたビュー を使うことも便利だと思うので、

@Html.Partial(MVC.Student.Index(), model)

マジックストリングなし。

7
Craig