在我的 ASP.Net 应用程序中,我有一个要求,即当用户单击 UI 元素时,我们为他们生成一个可供下载的 PDF。目前这是通过向 ashx 页面发送表单来实现的。该页面本质上是检查表单,然后执行正确的服务器端页面,从而生成 HTML 或该页面 HTML 的 PDF 文档。
在客户端,我提前知道我们是否要获取 PDF 或 HTML,当它是 HTML 时,我打开一个新窗口并将表单发布到该窗口,一切正常。当它是 PDF 时,我不会更改表单的目标,它仍保留在当前页面上。
这有效,用户会看到一个保存对话框,并且当前页面不会更改或丢失。
我遇到的问题是生成 PDF 需要 1-15 秒。我想做的是弹出一个请稍候对话框。显示弹出窗口很容易,我不确定的是我如何知道关闭弹出窗口?弹出窗口将是当前页面中的一个 div。
最佳答案
弹出窗口可以有一个客户端计时器,用于轮询服务器是否完成任务。长时间运行的服务器任务应该更新数据库表或轮询服务可以访问的服务器缓存对象中的进度。
MSDN 杂志上的几篇旧文章。您应该能够在 asp.net Ajax 等较新的库中使用相同的概念。
关于asp.net - 请等待对话框并在 ASP.NET 中下载文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/183279/