簡體   English   中英

在Response.End()之后刷新頁面內容

[英]Refresh page content after Response.End()

我有一段代碼可以動態生成csv文件。 用戶單擊一個按鈕,我准備字符串,然后我這樣做:

MemoryStream stream = new MemoryStream(ASCIIEncoding.Default.GetBytes(sb.ToString()));
Response.Clear();
Response.ContentType = "Application/csv";
Response.AppendHeader("content-disposition", String.Format("attachment; filename={0}.csv", fileName.ToString()));
Response.BinaryWrite(stream.ToArray());
Response.End();

然后提示用戶下載或保存新生成的文件。 問題是,在此之后我必須刷新頁面中的一些數據。 在Response.End之后,這是不可能的。

關於如何克服這個問題的任何想法?

這是一個常見問題,有很多方法可以解決這個問題,這些方法都歸結為需要為您的服務器創建兩個單獨的請求 第一個將請求您的CSV,第二個將請求您的刷新。

考慮到這一點,很明顯你可以:

  • 讓用戶創建兩個請求(通過單獨點擊兩個鏈接)
  • 當用戶只點擊一次時,使用javascript創建兩者

因此,例如,引發CSV下載的鏈接也可以調用javascript函數,這會導致數據刷新。 通常的方法是使用OnClientClick調用一些javascript來刷新您的數據。

但是,您可以根據自己的應用決定最佳前進方式。

也許點擊一個按鈕會在一個新窗口中將用戶重定向到一個處理程序(ashx),它將返回流/提示用戶保存文件?

-要么-

首先更新內容,然后將文件發送給用戶。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM