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

如何在C#的Response.Redirect中添加JavaScript式新窗口属性?

如何在C#的Response.Redirect中实现JS窗口打开的属性?

首先得明确一点:Response.Redirect本质是后端发送HTTP重定向指令,让浏览器在当前窗口跳转,它根本没法控制浏览器打开新窗口的那些属性(比如宽高、是否可缩放这些)——这些都是前端浏览器的行为,后端HTTP协议里没有对应的控制字段。

那要实现和你原来JS代码一样的效果,正确的做法是让后端输出一段JavaScript代码,让浏览器去执行打开新窗口的操作,具体代码如下:

// 先定义参数,注意对特殊字符做URL编码,避免参数传递出错
string BillNo = "255";
string Bill = "CG2/78";
string targetUrl = $"../Mine/MyPrint.aspx?BillNo={BillNo}&Bill={Uri.EscapeDataString(Bill)}";

// 拼接打开窗口的JS代码,和你原来的JS逻辑一致
string openWindowScript = $"window.open('{targetUrl}', 'MainForm', 'width=725px,height=530px,left=150px,top=50px,scrollbars=no,toolbars=no,resizable=no');";

// 注册并输出这段脚本,让页面加载时执行
ClientScript.RegisterStartupScript(this.GetType(), "OpenPrintWindow", openWindowScript, true);

另外提一下你原来写的C#代码里的小问题:

  • 字符串拼接时引号没闭合(最后少了一个单引号和双引号)
  • 后端拼接URL时不用写&,直接用&就行,&是HTML里的转义字符,后端输出原始URL不需要转义。

总结一下:后端没法通过Response.Redirect直接控制新窗口属性,必须借助前端JS来实现,上面的代码就是把你原来的JS逻辑从前端移到后端输出执行,效果和原来完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 07:20:12