.net Blazor布局与主布局冲突

de90aj5v  于 2023-02-20  发布在  .NET
关注(0)|答案(1)|浏览(142)

因此,我希望一个特定的页面使用另一个布局和规则,但代码初始化的主要布局是执行事件,如果该页面不使用或继承它。
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。

but5z9lq

but5z9lq1#

在应用程序中的某个地方,您正在加载MainLayout.razor。如果将调试启动URL直接设置为pagewithotherlayout,您将看到在MainLayout.razor中没有调用OnInitializedAsync
我刚在一个空布局上测试过。

无菜单布局.剃须刀

@inherits LayoutComponentBase

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

相关问题