我有一个带有文本状态的ASP.NET页面和一个用于导出Excel文件的按钮 . 当用户单击该按钮时,我想动态生成文件并将其作为二进制流返回给客户端 . 然后我想更改文本状态以显示成功/失败 .
到目前为止,我可以生成并发送文件没有问题,但显然状态不会显示,因为服务器响应用于发送文件而不是具有新状态的新更新页面 .
我不确定最简洁的方法是什么 . 我能想到一些东西,但这是最好的方式:
-
用户点击按钮 .
-
生成文件并将其另存为会话中的流 .
-
状态已更新,具有新状态的页面将返回给客户端 .
-
页面上的一段Javascript打开第三方页面,该页面从会话中检索已保存的流 .
你怎么看?这对我来说感觉像马克思 .
谢谢 .
1 回答
反过来做 . 让按钮的请求作为正常响应发送文件,然后在另一个连接的后台拉出会话的状态 . 如果您使用AJAX,则可以通过其DOM,UpdatePanel等动态更新现有页面 . 否则,打开一个单独的窗口,请求状态页面并运行计时器以定期刷新页面 .