MVC v4を使用しています。
Twitter bootstrapなどをすべて定義する '_BootstrapLayout'ページ、サイトレイアウト、navbarなどを定義するメインページ、およびメインページから継承するサイトページがあります。
_BootstrapLayout.cshtml
_MainPage.cshtml @ {Layout = "〜/ Views/Shared/_BootstrapLayout.cshtml"; }
Index.cshtml @ {Layout = "〜/ Views/Shared/_MainPage.cshtml";}
マスターページ->メインページ->サイトページ
_BootstrapLayoutページには、スクリプトのrendersectionが含まれています
@RenderSection("scripts", required: false)
Index.cshtmlページにスクリプトセクションを追加したいのですが、そうすると例外が発生します
@section scripts {
<script type="text/javascript">
$(document).ready(function () {
...
});
</script>
}
次のセクションは定義されていますが、レイアウトページ「〜/ Views/Shared/_MainPage.cshtml」用にレンダリングされていません:「scripts」。
そこで、_MainPage.cshtmlに空の@sectionスクリプトを追加しましたが、それでも同じ問題がありますか? _MainPageスクリプトセクションにコードを追加しても、同じエラーが発生します。 @sectionを_MainPageのどこに配置しても問題ありませんが、それでも同じエラーが発生します。
セクションを意図的に閉じない(つまり、}を削除する)と、セクションが正しくないことを示すエラーが表示されるため、_MainPageのセクションが解析されます。
この場合、サイトページ上のスクリプトの@RenderSectionsを取得するにはどうすればよいですか?
_MainPage.cshtml
のセクションを再定義する必要があります。
_BootstrapLayout.cshtml
@RenderSection("scripts", false)
_MainPage.cshtml
@section scripts
{
@RenderSection("scripts", false)
}
Index.cshtml
@section scripts
{
<script>
// etc.
</script>
}