38

我正在使用 MVC v4。
我有一个“_BootstrapLayout”页面,它定义了所有 twitter 引导程序等内容,一个定义站点布局、导航栏等的主页,以及从主页继承的站点页面。

_BootstrapLayout.cshtml

_MainPage.cshtml @{ 布局 = "~/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>
}

以下部分已定义但尚未为布局页面“~/Views/Shared/_MainPage.cshtml”呈现:“脚本”。

所以我在_MainPage.cshtml 中添加了一个空的@section 脚本,还是同样的问题?即使我将代码添加到 _MainPage 脚本部分,我仍然会收到相同的错误。我将@section 放在_MainPage 中的哪个位置都没有关系,仍然会出现相同的错误。

如果我故意不关闭该部分(即删除}),则会收到一个错误,表明该部分不正确,因此它正在解析_MainPage 中的部分。

在这种情况下,如何让网站页面上的脚本使用 @RenderSections?

4

1 回答 1

42

您需要重新定义_MainPage.cshtml.

_BootstrapLayout.cshtml

@RenderSection("scripts", false)

_MainPage.cshtml

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

索引.cshtml

@section scripts
{
   <script>
     // etc.
   </script>
}
于 2013-01-23T12:27:18.640 回答