将导航参数传递给blazor中的Nav或Layout组件

时间:2019-05-14 17:50:34

标签: blazor blazor-server-side

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

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

1 个答案:

答案 0 :(得分:1)

我认为您不能将值从组件传递到布局组件。不存在这样的功能...但是,我想您可以采用一些黑客手段。但是,您应该使用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中一个问题的链接,您可以阅读并了解传递参数的机制。史蒂夫·安德森(Steve Anderson)也有一条评论,他在其中提出了您可以如何破解的建议:https://github.com/aspnet/Blazor/issues/857

希望这对您有帮助...