如何在 Blazor 中定义共享路由参数以自动在多个页面上使用

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

我有一个包含很多页面的 Blazor Web 应用程序 (.Net8)。

有没有一种方法可以定义共享路由参数,而不必为每个页面手动设置它?我想要添加此路由参数的所有页面都使用渲染模式交互服务器。

假设我有 3 个具有不同路线的独立组件:

@page "/home"
@page "/faq"
@page "/contact"

现在例如我想通过使用路由参数添加一些本地化。我可以在每个页面上手动设置:

@page "/{culture}/home"
@page "/{culture}/faq"
@page "/{culture}/contact"

但我更喜欢一种全局解决方案,其中为每个页面自动定义一些路由参数,因此如果我稍后想要另一个路由参数,我可以在一个地方设置它,而不是在每个页面组件上手动设置。

blazor blazor-server-side .net-8.0
1个回答
0
投票

您可以查看基于属性的路由。

定义查找类如下:

public static class UrlLookup
{
    public const string Home = "/";
    public const string Faq = "/faq";
    public const string Contact = "/contact";
    // etc
}

然后使用您的常见问题解答组件作为示例,替换此:

@page "/faq"

有了这个:

@attribute [Route(UrlLookup.Faq)]

这种方法的优点是您只需将声明的 URL 保留在一个位置。当链接到其他组件(例如导航菜单)时,这也非常有用。

例如

<a href="@UrlLookup.Faq">FAQ</a>
© www.soinside.com 2019 - 2024. All rights reserved.