Blazor WebAssembly 路由搞乱了 NavLink

Blazor WebAssembly route messes up NavLink

我有一个包含两个页面的纯 WebAssembly Blazor 应用程序,PageA 和 PageB。

在 PageA 我有一个 link <a href="PageB/Item1">Go to Item1</a>

在 PageB 我有这个:

@page "/PageB"
@page "/PageB/{itemname}"

点击 link 将我重定向到 http://localhost/MySite/PageB/Item1 就好了。 现在,当我点击我的导航栏返回到 PageA 时,整个应用程序会重新加载或路由错误。

1.) 当我的 NavLink 中有这个时,整个应用程序会重新加载: <NavLink href="/PageA">PageA</NavLink>

2.) 当省略 / 时,URL 是错误的(/PageB/PageA): <NavLink href="PageA">PageA</NavLink>

我真的不知道为什么在单击 NavLink 时整个应用程序会重新加载。只有当我的 URL 包含路由参数时才会发生。只需单击 NavLink 即可正常导航。在另一种情况下 /PageB 已成为我的 NavMenu

的新根目录

您需要在每条路线的前面添加斜杠,例如:

@page "/PageB"
@page "/PageA"

然后进入你的 _Host.cshtml 如果你的应用程序在服务器端或者 index.html 如果应用程序是 WASM 并添加或修改存在的基本 href;

<base href="/mysite/">