【问题标题】:Updating a page before initiating a download?在开始下载之前更新页面?
【发布时间】:2012-06-25 10:30:19
【问题描述】:

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

我该如何编码,以便点击“下载”会在下载数据之前先刷新记录显示?

这是我用于下载的代码:

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

【问题讨论】:

    标签: asp.net


    【解决方案1】:

    您只能将一个响应发送回浏览器,然后更新数据,然后发送新标头以开始下载。

    要同时使用它们,您可能需要使用一些 javascript 和/或 ajax 调用来更改步骤。

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-11
        相关资源
        最近更新 更多