将二进制流发送到浏览器,然后更新页面

时间:2011-03-15 21:57:22

标签: asp.net

我有一个带有文本状态的ASP.NET页面和一个用于导出Excel文件的按钮。当用户单击该按钮时,我想动态生成文件并将其作为二进制流返回给客户端。然后我想更改文本状态以显示成功/失败。

到目前为止,我可以生成并发送文件没问题,但显然状态不会显示,因为服务器响应用于发送文件,而不是新状态的新更新页面。

我不确定最简洁的方法是什么。我能想到一些事情,但这是最好的方式:

  • 用户点击按钮。
  • 生成文件并将其另存为会话中的流。
  • 状态已更新,并且具有新状态的页面将返回给客户端。
  • 页面上的一段Javascript会打开第三方页面,从会话中检索已保存的流。
你怎么看?感觉对我来说是MacGyver-ish。

感谢。

1 个答案:

答案 0 :(得分:0)

反过来做。让按钮的请求作为正常响应发送文件,然后在另一个连接的后台拉出会话的状态。如果您使用AJAX,则可以通过其DOM,UpdatePanel等动态更新现有页面。否则,打开一个单独的窗口,请求状态页面并运行计时器以定期刷新页面。