2010-05-12 48 views

回答

8

Response.Flush方法用於在頁面的其餘部分之前刷新部分內容。要關閉任何響應緩衝效果,必須使用Response.Write而不是使用aspx標記來自己輸出頁面內容。

+0

這聽起來像是我的問題的答案。儘管需要一些小的澄清。當我說Response.End();它是否會自動刷新我寫的響應(通過調用Response.Write())直到現在,或者我必須在Response.End()之前調用Response.Flush()? – IsmailS 2010-05-12 05:52:56

+3

@Ismail:文檔中只提到當緩衝打開時Flush被自動調用,但並不表示緩衝關閉時會發生這種情況。所以,緩衝開啓時不需要,但在緩衝關閉時可能需要。如果您在不調用Response.End的情況下讓頁面循環正常結束,則內容將始終自動刷新。 – Guffa 2010-05-12 06:42:18

+0

@Guffa,你能回答我的問題在這裏:http://stackoverflow.com/questions/23709604/response-write-and-asp-net-controls。我認爲這回答了我的問題+1。 – w0051977 2014-05-17 10:59:08

4

在大多數情況下,您不需要調用Respond.End。如果你這樣做,你必須知道你的情況,你爲什麼要調用Respond.End和Flush。這是非常具體的案件。

此外,MSDN清除出來:

如果Response.Buffer設置爲TRUE, 到Response.End調用刷新 緩衝區。如果您不希望輸出 返回給用戶,您應該首先調用Response.Clear 。

+1

我在做 Response.Clear(); Response.Write(「我想要傳遞的輸出」); Response.Flush(); Response.End(); 是不是? 或者我不應該調用response.Flush() – IsmailS 2010-05-12 05:44:28

+3

不,在這種情況下,不應該在End()之前調用Flush()。 Flush()將在End()中自動調用。 – 2010-05-12 06:02:24