gpt4 book ai didi

blazor - 如何在 Razor 页面外的类中使用 NavigationManager?

转载 作者:行者123 更新时间:2023-12-04 02:35:30 25 4
gpt4 key购买 nike

我有一个单例类 Globals,我喜欢有一个静态方法来导航到我的应用程序中的其他页面。

public class Globals
{
public static async void openBlazorPage( string pageName )
{
await Task.Run( () => { NavigationManager.NavigateTo( pageName ); } );
}
}

但我无法在此类中访问 NavigationManager。
  • 如何在 Razor 页面外的类中访问 NavigationManager?
  • 最佳答案

    要在 Razor 页面之外的类后面的组件代码中访问 NavigationManager,请使用 [Inject] 属性,如下所示 -

    public class EmployeeEditBase : ComponentBase
    {
    [Inject]
    public NavigationManager NavigationManager { get; set; }

    }

    确保对组件使用代码隐藏方法。

    要在任何服务内部使用,请使用构造函数注入(inject)。在您的情况下,您也可以使用构造函数注入(inject)。
    public class Globals
    {
    private readonly NavigationManager _navMagager;
    public Globals(NavigationManager navManager)
    {
    _navMagager = navManager;
    }

    public static async void openBlazorPage( string pageName )
    {
    await Task.Run( () => { _navMagager .NavigateTo( pageName ); } );
    }
    }

    希望,它会帮助你。谢谢

    关于blazor - 如何在 Razor 页面外的类中使用 NavigationManager?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62168703/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com