因此,我希望一个特定的页面使用另一个布局和规则,但代码初始化的主要布局是执行事件,如果该页面不使用或继承它。PageWithOtherLayout.razor
@layout NoMenuLayout
@page "/pagewithotherlayout"
App.razor
<CascadingAuthenticationState>
<Router AppAssembly="@typeof(App).Assembly">
<Found Context="routeData">
<AuthorizeRouteView RouteData="@routeData" DefaultLayout="@typeof(MainLayout)" />
<FocusOnNavigate RouteData="@routeData" Selector="h1" />
</Found>
...
MainLayout.razor
protected async override Task OnInitializedAsync()
{
base.OnInitialized();
var user = (await AuthStat).User;
isAuth = user.Identity.IsAuthenticated;
if (!isAuth)
{
NavigationManager.NavigateTo("./login");
}
}
我没有找到任何有用的东西,但似乎是来自路由过程的blazor。
1条答案
按热度按时间but5z9lq1#
在应用程序中的某个地方,您正在加载
MainLayout.razor
。如果将调试启动URL直接设置为pagewithotherlayout
,您将看到在MainLayout.razor
中没有调用OnInitializedAsync
。我刚在一个空布局上测试过。
无菜单布局.剃须刀