2010-05-12 41 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