Blazor WebAssembly 中的相对路由

问题描述 投票:0回答:1

我是 Blazor 和 C# 新手,我正在尝试弄清楚如何使用相对路径进行导航。 假设我有这样的结构:

Index:    /
Page2:    /pageTwo
Page3:    /pageThree
PageFour: /pageThree/pageFour

我想使用相对路径在这些页面之间导航。

我尝试使用 NavigationManager 进行导航:

从索引我可以使用

NavigationManager.NavigateTo("pageTwo");

转到第二页

从第 2 页我想转到第 3 页,但使用以下方法不起作用:

  • NavigationManager.NavigateTo("../pageThree")
  • NavigationManager.NavigateTo(NavigationManager.ToAbsoluteUri("../pageThree").AbsoluteUri)
    我试过了
  • NavigationManager.NavigateTo(NavigationManager.ToAbsoluteUri("~/../pageThree").AbsoluteUri)
    并且页面访问正确,但为什么使用〜? (在寻找有关相对路径的答案时,我发现人们在谈论〜并且我想尝试一下)

从第 3 页我想转到第 4 页,但我的尝试都不起作用:

  • NavigationManager.NavigateTo(NavigationManager.ToAbsoluteUri("./pageFour").AbsoluteUri)
  • NavigationManager.NavigateTo(NavigationManager.ToAbsoluteUri("~/./pageFour").AbsoluteUri)
  • NavigationManager.NavigateTo(NavigationManager.ToAbsoluteUri("~/pageFour").AbsoluteUri)
  • NavigationManager.NavigateTo(NavigationManager.ToAbsoluteUri("pageFour").AbsoluteUri)
  • NavigationManager.NavigateTo(NavigationManager.ToAbsoluteUri("/pageFour").AbsoluteUri)

我写了一个小程序,在https://blazorfiddle.com/s/9lnhs40p

显示我的测试
c# .net blazor-webassembly relative-path blazor-routing
1个回答
0
投票

我认为你不需要使用./模式。

只需使用 / 如下

NavigationManager.NavigateTo("./");
NavigationManager.NavigateTo("./pageTwo");
NavigationManager.NavigateTo("./pageThree");
NavigationManager.NavigateTo("./pageFour");

NavigationManager.NavigateTo("./login");
NavigationManager.NavigateTo("./logout");

来自 https://learn.microsoft.com/en-us/aspnet/core/blazor/host-and-deploy/?view=aspnetcore-8.0&tabs=visual-studio

的屏幕截图

enter image description here

注意:@wiseguy 输入后回答更新。

© www.soinside.com 2019 - 2024. All rights reserved.