Blazor WASM 页面路由

Posted

技术标签:

【中文标题】Blazor WASM 页面路由【英文标题】:Blazor WASM Page Routing 【发布时间】:2021-07-17 06:14:53 【问题描述】:

有没有办法通过变量来定义剃须刀组件的页面路由?我希望以这种方式完成的原因之一是,每当我需要在另一个页面上定义重定向链接时,我可以只使用该变量而不是再次对其进行硬编码。

默认情况下,当我们想将剃刀组件定义为页面时,我们会这样做

@page "/product/id"

我希望它在某种意义上是集中的,它看起来像这样

public class PageRoute

    public const string ProductInfo = "/product/id";

然后我会在剃须刀组件上调用它

@page PageRoute.ProductInfo

【问题讨论】:

可以参考official doc,'page'指令需要双引号括起来的字符串。 【参考方案1】:

我希望它在某种意义上是集中的,它看起来像这样 ....

不,不是开箱即用的 Blazor。 @page = "/" 被预编译成一个属性:

[Microsoft.AspNetCore.Components.RouteAttribute("/")]
public partial class Index : Microsoft.AspNetCore.Components.ComponentBase 
....

这是在编译时修复的。如果你想要一个动态路由器,你需要编写自己的路由器。在 Internet 上搜索“Blazor 动态路由”和“Blazor 自定义路由”以了解更多信息。

【讨论】:

谢谢!这就是我一直在寻找的,该属性帮助我做我想做的事。干杯!

以上是关于Blazor WASM 页面路由的主要内容,如果未能解决你的问题,请参考以下文章

Blazor WASM 路由发布请求到 index.html

如何绕过 blazor wasm 路由系统并调用服务器

Blazor University (22)路由 —— 定义路由

Blazor University (24)路由 —— 可选路由参数

有没有办法在 Blazor 中检查 url 是不是有路由约束?

在刷新页面之前,Blazor Web Assembly (wasm) 不会使客户端 cookie 过期