2016-01-11 131 views
0

我有下面的代碼:在顯示下載彈出窗口之前在標籤中顯示消息?

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所示的消息。

回答

1

爲了讓您的標籤顯示消息,該頁面需要先回發。你只能做一個回發或文件下載,你不能在一個請求中執行這兩個操作。

通常情況下,提供文件下載的網站會顯示一條消息,如「您的文件將在10秒內下載」。在這段時間之後,頁面加載一個包含代碼下載文件的不同頁面。

這可以在asp.net中通過使用元刷新標記來實現,該元標記會自動將您從「成功」頁面重定向到包含文件下載代碼的第二頁。

這是一篇很好的文章,展示瞭如何在asp.net中使用元刷新http://www.aspsnippets.com/Articles/Redirect-to-another-page-after-5-seconds-in-ASPNet.aspx