У меня есть проект. NET Core 3.1 Blazor, где в приложении будет 3 подпапки, каждая из которых обслуживает одну страницу, содержимое которой будет управляться WebGL с использованием Three. JS.
В первой папке, с которой я тестирую, я создал два элемента. Первый называется «_TestPage.cs html», а другой - «Index.razor». На обеих страницах есть следующая директива @page:
@page "/Applications/TestFolder1/Index"
На странице _TestPage.cs html содержится следующее:
<!DOCTYPE html>
<html lang="en">
<body>
<app>
<component type="typeof(App)" render-mode="Server" />
</app>
</body>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>My Blazor App</title>
<base href="/" />
<script src="_framework/blazor.server.js"></script>
<style type="text/css">
body {
background-color: red;
}
</style>
</head>
</html>
Страница Index.razor также имеет в нем:
@layout EmptyLayout
@page "/Applications/Monitor/Index"
<AuthorizeView>
<Authorized>
<p style="color: black;">***I can not see this text either...***</p>
</Authorized>
<NotAuthorized>
<RedirectNotAuthorizedAccess />
</NotAuthorized>
</AuthorizeView>
Однако, когда приложение запускается, я могу go напрямую перейти на страницу индекса в подпапке без необходимости входа в систему. Я получаю solid красный фон, но я не вижу никакого отрендеренного текста, и при этом я не перенаправляюсь на страницу входа в систему, как это должно быть, поскольку я не вошел в систему. когда я не использую компонент MainLayout по умолчанию, создаваемый Visual Studio, и перезаписал макет на странице бритвы с помощью директивы @layout?