我有一个页面,允许用户输入搜索条件,然后显示匹配的记录。它还有一个下载按钮,使用户可以下载匹配的记录。
如何对其进行编码,以便在下载数据之前单击“下载”将首先刷新记录显示?
这是我用于下载的代码:
Response.ClearContent();
Response.ClearHeaders();
using (MemoryStream outputStream = new MemoryStream())
{
// some details elided...
outputStream.Write(documentData, 0, documentData.Count());
string fileName = GenerateFileName();
Response.AppendHeader("content-disposition", String.Format("attachment; filename={0}", fileName));
outputStream.Flush();
outputStream.WriteTo(Response.OutputStream);
}
Response.Flush();
Response.Close();
答案 0 :(得分:0)
只有一个响应可以发送回浏览器,以太网更新数据,以太发送新标题以开始下载。
要制作它们,你需要使用一些javascript和/或ajax调用来改变你的步骤。
HTTP协议的工作原理:http://www.w3.org/Protocols/rfc2616/rfc2616-sec1.html
答案 1 :(得分:0)
构造一个首先通过AJAX更新页面的javascript方法,然后继续发出非AJAX请求来下载文件。正如Aristos所说,这不能在一个请求中完成。一个不同的解决方案可能是先下载文件(非ajax),然后刷新没有ajax的页面。通常,在发出新的非ajax请求后,javascript代码无法正确执行,但如果它只下载文件,我认为代码可能会继续执行以发布下一个请求。