4

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

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

4

1 回答 1

3

我认为您不能将值从组件传递到布局组件。不存在这样的功能......但是,我想你可以使用一些黑客攻击。但是,您应该使用 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

希望这可以帮助...

于 2019-05-14T18:17:59.927 回答