簡體   English   中英

如何防止blazor中的路由

[英]How to prevent routing in blazor

我在西裝外套中創建了一個嵌套布局。

blazor 路由到其中一個導航菜單,其中還有另一個菜單。

當我單擊導航菜單時,它被路由到特定頁面,路由頁面上還有另一個菜單。

單擊該菜單會在嵌套布局中加載新路由的頁面。

但是,再次單擊最頂部的菜單會將頂部路由加載到最里面的布局中。

這是我的代碼。

MainLayout.razor:

@inherits LayoutComponentBase

<div class="sidebar">
    <NavMenu />
</div>

<div class="main">
    <div class="top-row px-4">
        <a href="https://docs.microsoft.com/aspnet/" target="_blank">About</a>
    </div>

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

導航菜單.razor:

<li class="nav-item px-3">
    <NavLink class="nav-link" href="sub">
        <span class="oi oi-list-rich" aria-hidden="true"></span> Sub
    </NavLink>
</li>

子菜單.razor:

@page "/sub"

@layout MainLayout
@inherits LayoutComponentBase

<h3>SubLayout</h3>

<div style="width:20%">
    <ul class="nav flex-column">
        <li class="nav-item px-3">
            <NavLink class="nav-link" href="/sub/mypage" Match="NavLinkMatch.All">
                <span class="oi oi-account-login" aria-hidden="true"></span> go to sub of sub
            </NavLink>
        </li>
    </ul>
</div>

<div style="width: 40%; height:40%; border:solid red">
    @Body
</div>

我的頁面.razor:

@page "/sub/mypage"
@layout SubLayout

<div >
    <h3>This is Mypage</h3>
</div>

這是執行結果:

在此處輸入圖片說明

為什么頂部導航菜單中的頁面加載到子布局中? 有什么辦法可以防止這種情況嗎?

沒有看到您在Mypage.razor中指定的Mypage.razor我認為問題在於您嘗試使用可路由組件作為布局。 我基本上只是將這些分開。

SubMenu.razor

@page "/sub"

<SubLayout />

SubLayout.razor

通過指定@layout MainLayout注意嵌套

@layout MainLayout
@inherits LayoutComponentBase

<h3>SubLayout</h3>

<div style="width:20%">
    <ul class="nav flex-column">
        <li class="nav-item px-3">
            <NavLink class="nav-link" href="/sub/mypage" Match="NavLinkMatch.All">
                <span class="oi oi-account-login" aria-hidden="true"></span> go to sub of sub
            </NavLink>
        </li>
    </ul>
</div>

<div style="width: 40%; height:40%; border:solid red">
    @Body
</div>

在此處輸入圖片說明

文檔在這里

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM