Blazor Server网站实现外部网站跳转的问题求助
Blazor Server 外部网站跳转解决方案
直接使用NavigationManager的正确方式
你之前的问题在于没有指定完整的协议头(https://),且未启用forceLoad参数。Blazor会把不带协议的URL当作站内相对路径处理,修改代码即可解决:NavManager.NavigateTo("https://www.google.com", forceLoad: true);forceLoad: true会强制浏览器发起全新的页面请求,而非尝试Blazor客户端路由,这是实现外部跳转的核心设置。
通过JS互操作实现跳转(适配特殊场景)
如果在后台逻辑、非UI线程等场景下NavigationManager无法生效,可借助IJSRuntime调用浏览器原生跳转能力:- 注入IJSRuntime依赖:
[Inject] public IJSRuntime JsRuntime { get; set; } - 执行跳转操作:
await JsRuntime.InvokeVoidAsync("window.location.href", "https://www.google.com");
- 注入IJSRuntime依赖:
内容的提问来源于stack exchange,提问作者HerzogVolpe
相关产品推荐
相关产品推荐

