如何在剃须刀页面之外的类中使用导航管理器?



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

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

但我无法访问此类中的导航管理器。

  • 如何在剃须刀页面之外的类中访问导航管理器?

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

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

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

若要在任何服务中使用,请使用构造函数注入。在您的情况下,您也可以使用构造函数注入。

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 ); } );
}
}

希望,它会帮助你。谢谢

相关内容

  • 没有找到相关文章

最新更新