Response.End()和Response.Flush()之间的差异

时间:2012-01-19 11:33:16

标签: asp.net httpresponse

我有这样的代码:

context.HttpContext.Response.Clear();
            context.HttpContext.Response.Write(htmlString);              
            context.HttpContext.Response.End(); 

但是当页面被加载时,我在它们上面有未公开的html标签。当我用Response.Flush()替换Response.End()时,它工作正常。 Response.End()和Response.Flush()之间有什么区别?

1 个答案:

答案 0 :(得分:25)

Response.Flush

  

强制将所有当前缓冲的输出发送到客户端。该   在请求处理期间,可以多次调用Flush方法。

到Response.End

  

将所有当前缓冲的输出发送到客户端,停止执行   页面,并引发EndRequest事件。

如果您在Response.Write之后没有对页面进行任何处理并且想要停止处理页面,则应该尝试使用此代码。

    context.HttpContext.Response.Clear();
    context.HttpContext.Response.Write(htmlString);              
    context.HttpContext.Response.Flush(); // send all buffered output to client 
    context.HttpContext.Response.End(); // response.end would work fine now.