Blazor WASM如何在Program.cs中获取当前URL?
在Blazor WASM的Program.cs中获取当前URL的方法
你可以通过构建WebAssemblyHost后,从服务容器中获取NavigationManager实例来获取当前URL,具体实现如下:
- 先完成服务配置与host构建,再通过
host.Services获取已注册的NavigationManager服务 - 调用
NavigationManager.Uri属性即可拿到应用当前的URL
示例代码:
var builder = WebAssemblyHostBuilder.CreateDefault(args); builder.RootComponents.Add<App>("#app"); // 配置你的自定义服务... var host = builder.Build(); // 获取NavigationManager实例 var navigationManager = host.Services.GetRequiredService<NavigationManager>(); var currentUrl = navigationManager.Uri; // 执行你需要用currentUrl完成的逻辑 await host.RunAsync();
注意:这里获取的是应用初始加载时的URL,因为Program.cs属于应用启动阶段的代码,后续路由变化不会更新这个值。如果需要在运行时实时获取URL,还是要在组件中使用注入的NavigationManager。
内容的提问来源于stack exchange,提问作者Dor Schreiber
相关产品推荐
相关产品推荐

