要获取Blazor应用程序中的浏览历史和页面来源,您可以使用Blazor的内置导航管理器和路由器。下面是一个包含代码示例的解决方法:
首先,确保您的Blazor应用程序中已经安装了以下包:
然后,在您的Blazor组件中,注入NavigationManager
依赖项,以便使用导航管理器。
@inject NavigationManager NavigationManager
获取当前页面的完整URL:
string currentUrl = NavigationManager.Uri;
获取当前页面的基本URL(不包括查询参数):
string baseUrl = NavigationManager.BaseUri;
获取当前页面的路径部分:
string path = NavigationManager.Uri.Replace(NavigationManager.BaseUri, "");
获取来源页面的URL(如果有的话):
string refererUrl = NavigationManager.ToAbsoluteUri(NavigationManager.Referrer).ToString();
请注意,NavigationManager.Referrer
属性返回的是一个字符串,所以我们需要使用NavigationManager.ToAbsoluteUri
方法将其转换为完整的URL。
最后,您可以在Blazor组件中使用这些值来实现您的业务逻辑。
请注意,NavigationManager
提供了许多其他有用的方法和属性,例如NavigateTo
用于导航到其他页面,LocationChanged
事件用于监听URL的更改等等。您可以参考官方文档以了解更多详细信息:https://docs.microsoft.com/en-us/aspnet/core/blazor/fundamentals/routing?view=aspnetcore-6.0