MVC @RenderSection“已定义节但尚未呈现”脚本.当页面的多个级别时
本文关键字:脚本 定义 @RenderSection MVC | 更新日期: 2023-09-27 17:55:16
我正在使用MVC v4.
我有一个"_BootstrapLayout"页面,它定义了所有 Twitter 引导程序等内容,一个定义网站布局、导航栏等的主页,以及从主页继承的网站页面。
_BootstrapLayout.cshtml
_MainPage.cshtml @{ layout = "~/views/shared/_BootstrapLayout.cshtml"; }
Index.cshtml @{Layout = "~/views/Shared/_MainPage.cshtml";}
所以母版页 -->主页 -->网站页
_BootstrapLayout页面包含脚本的呈现部分
@RenderSection("scripts", required: false)
我想将脚本部分添加到 Index.cshtml 页面,但是当我这样做时,我得到了异常
@section scripts {
<script type="text/javascript">
$(document).ready(function () {
...
});
</script>
}
以下部分已定义,但尚未呈现对于布局页面"~/视图/共享/_MainPage.cshtml":"脚本"。
所以我在 _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>
}