当我使用__doPostBack开始回发时,会创建一个文件并返回给用户以便在HttpContext.Current.Response
下载。
因为我更改了Response
,所以不修改包含其javascript值的页面
但是当我没有要输出的文件时,页面会刷新(因为回发)并且页面上的javascript修改会丢失。
如何“停止”回发继续并保留当前页面?我不能使用异步回发,因为我需要回发让用户下载文件。
编辑:在评论中的一些问题之后的更多信息:
答案 0 :(得分:7)
来自W3标准和RFC 2616:
10.2.5 204无内容服务器已完成请求但不需要返回实体主体,并且可能希望返回更新 元信息。响应可以包括新的或更新的 实体标题形式的元信息,如果存在,应该是 与要求的变体相关联。
如果客户端是用户代理,它不应该从导致请求发送的文档视图中更改其文档视图。此响应是 主要是为了允许在没有的情况下进行动作的输入 但是,导致更改用户代理的活动文档视图 任何新的或更新的元信息应该应用于文档 当前在用户代理的活动视图中。 204响应绝不可以 包括一个消息体,因此总是由第一个终止 标题字段后面的空行。
请注意这里的粗体线。我自己没试过;但是,将HTTP状态设置为204并发回一个空文档,而不是试图完全停止回发,这当然值得一试。
祝你好运,我希望这会有所帮助。编辑:这是诀窍的代码:
System.Web.HttpContext.Current.Response.StatusCode = 204;