如何在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
相关产品推荐
相关产品推荐

