Blazor — Скрыть боковую и верхнюю панель на определенной странице (не для всего сайта)

#c# #asp.net-core #blazor #blazor-server-side

Вопрос:

Я создаю приложение на сервере Blazor (.NET 5), и я хотел бы скрыть боковую и верхнюю панели для определенной страницы. Я попытался поискать, но не смог найти никаких решений, которые бы сработали. Ниже приведен скриншот, показывающий, что я хочу скрыть (в красных прямоугольниках).

Ссылка на изображение

Очевидно, я хочу, чтобы сам раздел содержимого/тела занимал всю страницу.

Комментарии:

1. Вы можете передать свою страницу макета в виде каскадного значения, используя «это» для значения, используя переменную, чтобы показать / скрыть ее. Затем на ЛЮБОЙ странице или элементе управления, который хочет скрыть элементы на странице макета, вы можете задать переменную, выбрав макет в качестве каскадного параметра. Сейчас я ухожу на работу, но могу показать вам код позже, если хотите.

Ответ №1:

Верхняя и боковая панели определены в shared/MainLayout.razor файле. Вы можете отредактировать этот файл, чтобы отредактировать макет.

Если вы хотите скрыть верхнюю и боковые панели только на определенных страницах, а не на всех страницах приложения, вы можете создать новый компонент макета, в котором нет элементов верхней и боковой панели, а затем добавить новый макет на выбранные страницы с помощью @layout директивы.

Создайте и примените новый макет к компоненту — ASP.NET Основные макеты Blazor

Комментарии:

1. Спасибо, это помогло! Проблема устранена

Ответ №2:

Для будущих читателей этого вопроса, вот что я сделал: я создал новый файл под названием «NoMenuLayout.razor» в папке «Общий доступ» и поместил в него этот код:

 @inherits LayoutComponentBase

<div class="page">
    <div class="content px-4">
        @Body
    </div>
</div>
 

Затем я перешел к файлу, в котором я хотел скрыть верхнюю и боковую панель, и просто поместил @layout NoMenuLayout прямо под директивой @page, как это:

 @page "/Landing"
@layout NoMenuLayout

<h3>Landing page test</h3>

@code {
    
}