#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 {
}