1. ホーム
  2. asp.net-mvc

[解決済み] Razor Html.Partial() vs @RenderPage()

2023-02-18 22:47:06

質問

子テンプレートの適切なレンダリング方法を教えてください。

そして、その違いは何ですか?どちらも私のために動作するように見えます。

そして、なぜ @Html.RenderPartial() はもう機能しないのでしょうか?

どのように解決するのですか?

Html.Partial("MyView")

MyView"ビューを MvcHtmlString . これは、ビューの参照に関する標準的なルール (すなわち、カレントディレクトリをチェックし、次に Shared ディレクトリをチェックする) に従います。

Html.RenderPartial("MyView")

と同じことをします。 Html.Partial() と同じですが、出力をレスポンスストリームに直接書き込む点が異なります。 これはより効率的です。なぜなら、ビューのコンテンツはメモリにバッファリングされないからです。 しかし、このメソッドは出力を返しません。 @Html.RenderPartial("MyView") は動作しません。 代わりに、コードブロックで呼び出しをラップする必要があります。 @{Html.RenderPartial("MyView");} .

RenderPage("MyView.cshtml")

指定されたビュー(ビュー名ではなく、パスとファイル名で識別)をレスポンスストリームに直接レンダリングします。 Html.RenderPartial() . 2 番目のパラメータとしてモデルを指定することで、ビューに好きなモデルを与えることができます。

RenderPage("MyView.cshtml", MyModel)