blazor - 将导航参数传递给 blazor 中的导航或布局组件

标签 blazor blazor-server-side

在 Blazor(服务器端)应用程序上,我有一个嵌套布局。当我们转到嵌套布局中的页面时,我有导航到其他页面的导航。着陆页的 url 是/items/3,其中 3 是 {id:int}。现在要导航到其他页面,我需要将此 id 传递给 Nav/Layout 组件 - 这样我就可以在其他 s 上使用该 id。如何将此 id 传递给 Nav 或 Layout 组件?

尝试将 [Parameter] 标签放在 Nav 或 Layout 组件上,但未填充参数。

最佳答案

我不认为您可以将值从组件传递到布局组件。不存在这样的功能......但是,我想你可以使用一些黑客技术。但是,您应该使用 IUriHelper 导航到另一个页面,如下所示:

@inject Microsoft.AspNetCore.Blazor.Services.IUriHelper UriHelper

<button onclick=@Navigate>Click me to navigate to another page</button>


@functions {
    private void Navigate()
    {
        UriHelper.NavigateTo("/hello-world");
    }
}

编辑:
正如我上面写的,没有办法将参数从子组件传递到父组件。您应该根据 Blazor 提供的功能、行为和限制调整您的应用。下面是Github中一个issue的链接,大家可以阅读理解传递参数的机制。史蒂夫·安德森 (Steve Anderson) 也发表了评论,其中提出了如何解决这个问题:https://github.com/aspnet/Blazor/issues/857

希望这可以帮助...

关于blazor - 将导航参数传递给 blazor 中的导航或布局组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56135968/

相关文章:

asp.net - IIS 8 上的 Blazor WebAssembly - 0x8007000d

Azure 应用服务为 Blazor 应用程序设置环境吗?

带有 MessagePack 的 SignalR .Net 客户端 - IHubConnectionBuilder 中无法识别 AddMessagePackProtocol 方法

Blazor:如何存储页面状态(所有组件状态)?

c# - 如何从 blazor 中的子项调用父 razor 组件中的函数?

带有多个参数的 Blazor EventCallback - 如何响应父主机控件中的事件

docker - Docker 容器上的 Blazor

css - 为 Blazor 中的主题设置 CSS 变量 'deeply'

Blazor 替换浏览器历史记录中的 URL

javascript - Blazor fire onchange event when Chosen drop down value changes