要获取Blazor中的ActionContext
,可以通过注入NavigationManager
服务来实现。以下是一个包含代码示例的解决方法:
using Microsoft.AspNetCore.Components;
ActionContextService
的服务类,用于获取ActionContext
:public class ActionContextService
{
private readonly NavigationManager _navigationManager;
public ActionContextService(NavigationManager navigationManager)
{
_navigationManager = navigationManager;
}
public ActionContext GetActionContext()
{
var uri = _navigationManager.Uri;
return _navigationManager.ToBaseRelativePath(uri);
}
}
Startup.cs
文件中注册ActionContextService
服务:services.AddScoped();
ActionContextService
并使用它来获取ActionContext
。例如:@page "/example"
@inject ActionContextService ActionContextService
ActionContext Example
Current ActionContext: @ActionContextService.GetActionContext()
在上面的示例中,ActionContextService
通过依赖注入被注入到组件中,并在@ActionContextService.GetActionContext()
中调用GetActionContext
方法来获取当前页面的ActionContext
。