好吧,我决定通过打开一个新页面(newPage.aspx)来解决这个问题,然后在下载完成后启动下载并关闭。我正在使用javascript打开newPage.aspx,将其写入当前页面的响应。但是,出于某种原因,在重新定向原始页面之前未打开窗口。在我重定向之前,他们的方法是否被调用?也许我有语法问题?
Response.Write("<script type='text/javascript'>window.open('~/newPage.aspx', '', ''); </script>")
Response.Redirect("~/oldPage.aspx")
修改
我尝试了以下但是没有用...(我在更新面板中工作)
ScriptManager.RegisterStartupScript(udpMain, udpMain.GetType(), "openExcel", "window.open('~/newPage.aspx', '' , '');", True)
编辑2:如此关闭
好的,所以这只有在我注释掉Response.Redirect时才有效。看起来RegisterStartupScript方法发生在Response.Redirect方法之后的页面加载上。对此有任何已知的解决方法吗?
ScriptManager.RegisterStartupScript(udpMain, udpMain.GetType(), "openExcel", "window.open(NewPage.aspx'); location.href='OldPage.aspx';", True)
Response.Redirect("~/OldPage.aspx")
答案 0 :(得分:1)
您也可以通过客户端脚本重定向。顺便说一句,当使用ASP.NET时,将JS嵌入HTML的优选方式是ClientScript.RegisterStartupScript
,例如
ClientScript.RegisterStartupScript(Me.GetType(), "JSCode" & Rnd(1).ToString, "window.open('newPage.aspx'); location.href = 'oldPage.aspx'", True)