我有以下代码:
lblInfoMessage.Text = "Successful";
HttpContext.Current.Response.Clear();
HttpContext.Current.Response.BufferOutput = false;
HttpContext.Current.Response.ContentType = "application/zip";
HttpContext.Current.Response.AddHeader(
"content-disposition",
string.Format("attachment; filename={0}", zipFileName));
// code to generate a file
HttpContext.Current.Response.Flush();
HttpContext.Current.Response.End();
此页面只显示一个弹出窗口,用于下载我生成的文件,但我还需要一条标签lblInfoMessage中显示的消息。
答案 0 :(得分:1)
要让您的标签显示消息,页面需要先发回。您只能进行回发或文件下载,而不能在一个请求中同时执行这两项操作。
通常,提供文件下载的网站会显示“您的文件将在10秒内下载”等消息。在此之后,页面会加载一个不同的页面,其中包含下载文件的代码。
这可以通过使用元刷新标记在asp.net中实现,该标记会自动将您从“成功”页面重定向到包含文件下载代码的第2页。
这是一篇很好的文章,展示了如何在asp.net http://www.aspsnippets.com/Articles/Redirect-to-another-page-after-5-seconds-in-ASPNet.aspx
中使用元刷新