You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#使用Redirect跳转about:blank报错与无限循环如何处理

问题根因
  • Redirect(string url) 方法默认会将不带标准HTTP/HTTPS协议头的地址识别为应用内相对路径,自动将 about:blank 拼接在当前站点域名后,生成类似 https://你的站点域名/about:blank 的无效地址,直接触发访问报错。
  • 如果项目配置了全局错误捕获重定向规则,访问无效地址会触发错误处理逻辑再次进入原控制器方法,最终形成无限循环。
可行解决方案

方案1:前端侧跳转(兼容性最高)

不走服务端302重定向逻辑,直接返回前端脚本触发跳转,浏览器对这种方式的about:blank支持最好:

public IActionResult JumpToBlank()
{
    return Content("<script>window.location.replace('about:blank');</script>", "text/html");
}

方案2:显式构造重定向结果,跳过路径拼接

直接实例化RedirectResult,强制使用传入的原始地址,不做相对路径处理:

public IActionResult JumpToBlank()
{
    return new RedirectResult("about:blank", false);
}

注意:少部分旧版浏览器会拦截服务端重定向到非HTTP协议地址的请求,该方案兼容性略低于方案1。

方案3:直接返回空白页(无跳转逻辑)

如果不需要修改地址栏地址,只是要展示空白页,直接返回空内容即可,完全规避重定向逻辑:

public IActionResult BlankPage()
{
    return Content("", "text/html");
}
额外建议

如果是要在新标签页打开空白页,优先在前端实现:直接给a标签添加target="_blank"属性,不需要发起服务端请求,性能和兼容性都最优。

内容的提问来源于stack exchange,提问作者Krzysztof

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.08 12:54:01