根据ASP.NET页面,单击按钮时,应执行以下操作:
执行清理操作,例如
现在下载部分通过以下代码发生:
Response.Clear();
Response.Buffer = true;
Response.ContentType = "application/pdf";
Response.AddHeader("Content-Disposition", "attachment; filename="+strFileName+".pdf");
Response.WriteFile(strBrowserPath);
剩下的行动(第2点)在之后完成。
可悲的是,由于使用了Response.Clear()/ Response.WriteFile(),因此没有发生其余的服务器端操作。
任何替代方案?对此有何修复?
答案 0 :(得分:2)
从您使用回发操作发送文件的那一刻起,同时您无法发送带有更改的页面(禁用按钮,更改文本等)。对此没有任何修复,因为它没有问题,是它的工作方式。您有一个管道可以发回您的回复。你要求一个http响应,你得到一个http响应,你不能同时拥有更新页面和文件。
现在,另类。首先是你要如何发送文件。我建议使用一个带有download.ashx?Dhwoload=filea.pdf
等参数的处理程序,并在回传后在页面上进行更新,然后调用
window.location = "download.ashx?Dhwoload=filea.pdf";
javascript,其他链接为
<a href="download.ashx?Dhwoload=filea.pdf">if the file did not start to download automatically click here</a>
并开始工作。
相对:
What is the best way to download file from server
Error handling when downloading file from ASP.NET Web Handler (.ashx)