当我在下载文件后尝试重定向到新页面时,它不起作用。我是否必须删除或修改此代码中的任何内容?调试器没有到达它
byte[] fileData = (byte[])sqlRead[3];
Response.Clear();
Response.AppendHeader("content-disposition", "attachment; filename=" + sqlRead[2]);
Response.ContentType = "application/octet-stream";
Response.BinaryWrite(fileData);
Response.Flush();
Response.End();
Response.Clear();
Response.Redirect("Questions.aspx");
答案 0 :(得分:3)
答案 1 :(得分:3)
Andrew对于Response.End正确停止执行。我不认为删除它会有所帮助,因为它只会影响你发送的文件。
你可以通过其他技巧获得你想要的效果。例如,您可以使用带有DL链接的页面上的某些JS来执行客户端重定向。
修改的
我建议您在下载链接中添加次要行为,以便点击它可以下载文件并更改当前页面。如果单击启动一个在一秒左右进行重定向的计时器,它可能会更好。
答案 2 :(得分:0)
我不是ASP人,但您还需要将Redirect调用移到任何将某些内容写入响应正文的调用之上。
尝试在Redirect()
Response.Clear()
重定向URL在HTTP响应的标头中传输,因此在生成主体之后调用它(因此标头已经生成并发送)将呈现无效或错误。
答案 3 :(得分:0)
不要使用response.end()/它会突然结束请求处理线程。
答案 4 :(得分:0)
您可以尝试删除整个块:
Response.Flush();
Response.End();
Response.Clear();
我认为问题可能是对Flush()
的调用导致内容被发送到浏览器,因此在调用{{1}时添加重定向HTTP标头为时已晚}。