在ASPX页面中,我想要在特定的代码路径下结束响应(而不是由于错误条件),以便在流中不发送任何其他内容。 所以我自然会使用以下代码:
Response.End();
这会导致ThreadAbortException异常,这是有意为之的设计。
以下代码似乎有效,但不符合此SO问题中建议的正确做法:
Response.Flush();
Response.Close();
这样怎么样?
Response.Flush();
Response.SuppressContent = true
然后让页面正常完成。我可以处理和忽略ThreadAbortException,但我想知道使用SuppressContent方法是否有什么问题或陷阱?举个例子,假设我有一个ASPX页面,在其中可能会将内容类型更改为多种可能性之一。根据内容类型和场景,在代码的给定点上,我想要防止向客户端发送更多内容。在将SuppressContent设置为true之后,假设没有任何进一步的服务器端代码问题,我只是不希望向客户端发送任何其他内容。请参见下面提供的答案以获取我实际最终采用的解决方案,因为我最终找到了一种避免使用Response.End时出现ThreadAbortException的方法。