我有一个单例类Globals,我想有一个静态方法来导航到我应用程序中的其他页面。
public class Globals
{
public static async void openBlazorPage( string pageName )
{
await Task.Run( () => { NavigationManager.NavigateTo( pageName ); } );
}
}
但是我不能在此类中访问NavigationManager。
答案 0 :(得分:3)
要在Razor页面外部的类后面的组件代码内部访问NavigationManager,请使用以下[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 ); } );
}
}
希望,它将为您提供帮助。谢谢