Возможно ли сделать разделы Razor дополнительными?

Если у меня есть страница с:

<body>
    @section SomeStuff {
        <span>This is a section I just addered</span>
    }

</body>

Возможно ли, чтобы макет не отображал этот раздел, или это противоречит тому, как это должно работать концептуально. Похоже, было бы полезно иметь возможность не отображать определенные разделы на странице (если я не думаю об этом неправильно).

Edit:

Включение сообщения об ошибке может быть полезно, когда я помещаю раздел на главную страницу, страница макета терпит неудачу: The following sections have been defined but have not been rendered for the layout page "/Views/Layouts/_Layout1.cshtml": "SomeStuff". Как будто это заставляет меня отображать каждый раздел на странице или что-то в этом роде.

В других словах, в Layout.cshtml, я не вызываю @RenderSection, но в Index.html у меня есть раздел с именем SomeStuff. Это законно? Похоже, что это заставляет меня отображать все разделы на странице, но похоже, что разделы должны быть необязательными, no?

Ответ 2

Для определенного макета не для рендеринга определенного раздела вам нужно иметь что-то вроде этого: layout.cshtml

@RenderSection("Somestuff", required:false)

Ответ 3

Вы можете установить необязательный раздел, установив требуемый параметр в значение false. Если вы хотите включить некоторый необязательный HTML-код обложки вокруг своего раздела, вы также можете использовать метод IsSectionDefined.

@if(IsSectionDefined("SideBar"))
{
    <div class="sidebar">
        @RenderSection("SideBar", required: false)
    </div>
}

Ответ 4

Вы можете сделать:

  @if (condition) {
     @RenderSection("SomeStuff")
  }

Или просто используйте conditional statement, а не @RenderSection:

 @if (yourCondition) {
    <span>This is a section I just addered</span>
 }