Подтвердить что ты не робот

MVC @RenderSection "были определены, но не были отображены" скрипты. Когда несколько уровней страницы

Я работаю с MVC v4.
У меня есть страница "_BootstrapLayout", которая определяет все твитер-загрузочные файлы и т.д., Главную страницу, на которой определяются макет сайта, навигация и т.д. И страницы сайта, которые наследуются с главной страницы.

_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": "скрипты".

Итак, я добавил пустые скрипты @section в _MainPage.cshtml, по-прежнему та же проблема? Даже если я добавлю код в раздел сценариев _MainPage, я все равно получаю ту же ошибку. Неважно, где я помещал @section в _MainPage, все равно получаю ту же ошибку.

Если я намеренно не закрываю раздел (т.е. удаляю}), то я получаю сообщение об ошибке, которое указывает, что раздел неверен, поэтому он разбирает раздел в _MainPage.

Как я могу заставить @RenderSections для скриптов на страницах сайта работать в этом случае?

4b9b3361

Ответ 1

Вам нужно переопределить раздел в _MainPage.cshtml.

_BootstrapLayout.cshtml

@RenderSection("scripts", false)

_MainPage.cshtml

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

Index.cshtml

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