MVC @RenderSection“路段已确定,但尚未呈现”脚本。 当页面的多个级别(MVC

2019-08-07 23:23发布

我与MVC v4的工作。
我有一个'_BootstrapLayout页面定义的所有Twitter的引导等东西,它定义了网站的布局,导航栏等,以及网站页面从主页继承主页。

_BootstrapLayout.cshtml

_MainPage.cshtml @ {布局= “〜/查看/共享/ _BootstrapLayout.cshtml”; }

Index.cshtml @ {布局= “〜/查看/共享/ _MainPage.cshtml”;}

所以母版页 - >主页 - >网站页面(S)

该_BootstrapLayout页面包含脚本rendersection

@RenderSection("scripts", required: false)

我想一个脚本部分添加到Index.cshtml页面,但是当我做我得到的异常

@section scripts {
    <script type="text/javascript">

        $(document).ready(function () {
...

        });

    </script>
}

下面的部分已经确定,但还没有被渲染的页面布局“〜/查看/共享/ _MainPage.cshtml”:“脚本”。

所以我加了一个空@section脚本到_MainPage.cshtml,还是同样的问题? 即使我将代码添加到_MainPage脚本部分我仍然得到同样的错误。 没关系,我把@section在_MainPage,仍然得到同样的错误。

如果我故意不关闭部分(即删除}),然后我得到这表明部分不正确的错误,所以它的解析中_MainPage部分。

我怎样才能为网站页面上的脚本@RenderSections在这种情况下工作吗?

Answer 1:

你需要重新定义的部分_MainPage.cshtml

_BootstrapLayout.cshtml

@RenderSection("scripts", false)

_MainPage.cshtml

@section scripts
{
   @RenderSection("scripts", false)
}

Index.cshtml

@section scripts
{
   <script>
     // etc.
   </script>
}


文章来源: MVC @RenderSection “sections have been defined but have not been rendered” scripts. When multiple levels of page