将导航参数传递给 blazor 中的 Nav 或 Layout 组件
Pass Navigation Parameter to Nav or Layout component in blazor
在 Blazor(服务器端)应用程序上,我有一个嵌套布局。当我们转到嵌套布局中的页面时,我有导航到其他页面的导航。着陆页的 url 是 /items/3,其中 3 是 {id:int}。现在要导航到其他页面,我需要将此 id 传递给 Nav/Layout 组件 - 这样我就可以在其他页面上使用该 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 提供的功能、行为和限制调整您的应用。下面是link对Github中的一个issue,大家可以阅读了解传递参数的机制。史蒂夫·安德森 (Steve Anderson) 也发表了评论,他建议您如何破解此问题:https://github.com/aspnet/Blazor/issues/857
希望这对您有所帮助...
在 Blazor(服务器端)应用程序上,我有一个嵌套布局。当我们转到嵌套布局中的页面时,我有导航到其他页面的导航。着陆页的 url 是 /items/3,其中 3 是 {id:int}。现在要导航到其他页面,我需要将此 id 传递给 Nav/Layout 组件 - 这样我就可以在其他页面上使用该 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 提供的功能、行为和限制调整您的应用。下面是link对Github中的一个issue,大家可以阅读了解传递参数的机制。史蒂夫·安德森 (Steve Anderson) 也发表了评论,他建议您如何破解此问题:https://github.com/aspnet/Blazor/issues/857
希望这对您有所帮助...