Это мой _Layout.cshtml:
@await RenderSectionAsync("SpecialHeader", required: false)
В некоторых представлениях это есть, а в некоторых нет:
@section SpecialHeader
{
// something
}
Все идет нормально.
Теперь, как я могу проверить, является ли RenderSectionAsync (в _Layout.cshtml) нулевым (пустым) или нет?
Я хочу что-то вроде этого:
if (RenderSectionAsync == null) // this is in my mind
{
// Public Header
}
else
{
@await RenderSectionAsync("SpecialHeader", required: false)
}





Вы можете использовать метод RazorPage.IsSectionDefined(string), чтобы проверить, определен ли указанный раздел на странице контента.
На странице _Layout.cshtml добавьте следующий код:
@if (IsSectionDefined("SpecialFooter"))
{
@await RenderSectionAsync("SpecialFooter", required: false)
}
else{
<div>Default Content</div>
@* IgnoreSection("SpecialFooter"); *@
}
Затем на странице контента:
Индексная страница: определите раздел.
@section SpecialFooter {
<div>custom footer</div>
}
Страница конфиденциальности: без определения раздела.
Результат, как показано ниже:
Индексная страница:
Страница конфиденциальности: