web-dev-qa-db-ja.com

Asp.Net mvcのビュー内でビューをレンダリングする

別のビュー内に完全なビュー(部分ビューではない)をレンダリングするにはどうすればよいですか?

シナリオでは、異なるコントローラーがあり、レイアウトが異なる他のコントローラーの下に既に存在するまったく同じビューをレンダリングしたいです。

Home Controllerに追加された製品のリストを表示するウィッシュリストページがあり、ユーザーがログインしたときにウィッシュリストをクリックすると、ユーザーがサインインしたときにナビゲーションも表示されます。

どうすればいいですか?

18
trighati

多くの開発者はこれについて知っていませんが、 RenderPage を使用できます。これはその目的のために特別に設計されています(MVCビューを別のビュー内にレンダリングするため)

@RenderPage("~/Views/Shared/SampleView.cshtml")
33
Denys Wessels

独自のコントローラーで部分ビューを作成または使用し、 RenderAction() を使用できます。

[ChildActionOnly]
public ActionResult ActionPartialView(string p1)

{
    //code...

    return PartialView(); 
}

上記のコードは、任意のコントローラー、独自のコントローラーに配置でき、そのコントローラーを使用してかみそりで呼び出すだけです。

かみそり:

@{ Html.RenderAction("Index", "Home"); }

役立つことを願っています

11
Sarel Louw