RenderBody() と RenderSection() はすべての子レイアウトに必要ですか? 質問する

RenderBody() と RenderSection() はすべての子レイアウトに必要ですか? 質問する

シンプルなレイアウトが3つあります。

_レイアウト.cshtml(これが基本レイアウトです)

@RenderSection("something", required: false)
@RenderBody()

_メイン.cshtml

@{
    Layout = "~/Views/Shared/_Layout.cshtml";
}
@section something {
   Hey I'm actually on the _Main layout.
}

インデックス.cshtml

@{
    Layout = "~/Views/Shared/_Main.cshtml";
}

アクションでインデックスビューをレンダリングしようとすると、次のエラーが発生しました。

レイアウト ページ "~/Views/Shared/_Main.cshtml" に対して "RenderBody" メソッドが呼び出されていません。

しかし、待ってください、_Main.cshtmlには既に がある親レイアウトがあります。それでは私が間違っているのでしょうか、すべての子レイアウトに対して をRenderBody()呼び出す必要があるのでしょうか?RenderBody()

ベストアンサー1

はい、ネストに関係なく、RenderBody はすべてのレイアウト ページに含める必要があります。

@RenderBodyレイアウト ページを使用してビューのコンテンツをドロップする場所をエンジンが認識するためのプレースホルダーとして機能します。

おすすめ記事