在Response.WriteFile()之后未发生附带操作
本文关键字:操作 之后 Response WriteFile | 更新日期: 2023-09-27 17:58:11
根据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(),剩下的服务器端操作没有发生。
有其他选择吗?有什么解决办法吗?
从您使用post-back操作发送文件的那一刻起,同时您不能发送和更改页面(禁用按钮、更改文本等)。这个问题没有解决办法,因为它的工作方式没有问题。您有一个管道可以发回响应。你要求一个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>
并做好你的工作。
相对:
从服务器下载文件的最佳方式是什么
从ASP.NET Web处理程序(.ashx)下载文件时的错误处理