在开始下载之前更新页面?

时间:2012-06-25 10:30:19

标签: asp.net

我有一个页面,允许用户输入搜索条件,然后显示匹配的记录。它还有一个下载按钮,使用户可以下载匹配的记录。

如何对其进行编码,以便在下载数据之前单击“下载”将首先刷新记录显示?

这是我用于下载的代码:

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();

2 个答案:

答案 0 :(得分:0)

只有一个响应可以发送回浏览器,以太网更新数据,以太发送新标题以开始下载。

要制作它们,你需要使用一些javascript和/或ajax调用来改变你的步骤。

HTTP协议的工作原理:http://www.w3.org/Protocols/rfc2616/rfc2616-sec1.html

答案 1 :(得分:0)

构造一个首先通过AJAX更新页面的javascript方法,然后继续发出非AJAX请求来下载文件。正如Aristos所说,这不能在一个请求中完成。一个不同的解决方案可能是先下载文件(非ajax),然后刷新没有ajax的页面。通常,在发出新的非ajax请求后,javascript代码无法正确执行,但如果它只下载文件,我认为代码可能会继续执行以发布下一个请求。