如何在 class 外部剃须刀页面中使用 NavigationManager?
How to use NavigationManager in a class outside razor page?
我有一个单例 class 全局,我喜欢有一个静态方法来导航到我应用程序中的其他页面。
public class Globals
{
public static async void openBlazorPage( string pageName )
{
await Task.Run( () => { NavigationManager.NavigateTo( pageName ); } );
}
}
但我无法在此 class.
中访问 NavigationManager
- 如何在 class 外部 razor 页面中访问 NavigationManager?
要在 Razor 页面之外 class 后面的组件代码中访问 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 ); } );
}
}
希望对您有所帮助。谢谢
我有一个单例 class 全局,我喜欢有一个静态方法来导航到我应用程序中的其他页面。
public class Globals
{
public static async void openBlazorPage( string pageName )
{
await Task.Run( () => { NavigationManager.NavigateTo( pageName ); } );
}
}
但我无法在此 class.
中访问 NavigationManager- 如何在 class 外部 razor 页面中访问 NavigationManager?
要在 Razor 页面之外 class 后面的组件代码中访问 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 ); } );
}
}
希望对您有所帮助。谢谢