Как скрыть зону содержимого на странице, если тело пусто?

У меня есть несколько страниц, которые не всегда имеют содержимое в теле, и я хотел бы затем рассматривать зону как пустую и скрывать ее.

Обычно я бы использовал

@if (Model.Content != null)
{
    <section id="layout-content">
        <div class="container">
            <div class="row">
                <div class="col-md-12">
                    @Zone(Model.Content)
                </div>
            </div>
        </div>
    </section>
}

Проблема в том, что зона контента никогда не бывает нулевой на странице, там есть заголовок и метаданные. Даже если я скрою теги с размещением, он все равно не будет нулевым, поэтому он просто отображает пустые теги.

<section id="layout-content">
    <div class="container">
        <div class="row">
            <div class="col-md-12">
                <div class="zone zone-content">
                    <article class="page content-item">
                        <header> </header>
                    </article>
                </div>
            </div>
        </div>
    </div>
</section>

Могу ли я как-то проверить наличие пустого тела в моем макете или вы бы предложили лучший подход?


person Xeevis    schedule 26.08.2014    source источник


Ответы (1)


Не скрывайте зону содержимого верхнего уровня от макета. Вместо этого переопределите Content.cshtml и скройте оттуда локальные зоны.

person Bertrand Le Roy    schedule 26.08.2014
comment
Что бы я сделал, если бы захотел переопределить LogOn.cshtml? Я считаю, что по умолчанию форма входа отображается в зоне содержимого. Я конвертирую шаблон начальной загрузки в тему и пытаюсь создать модальное окно для входа в систему. Если вход в систему обычно отображается в зоне содержимого, можно ли его переопределить? - person sshirley; 04.04.2016