asp.net - 请等待对话框并在 ASP.NET 中下载文件

标签 asp.net

在我的 ASP.Net 应用程序中,我有一个要求,即当用户单击 UI 元素时,我们为他们生成一个可供下载的 PDF。目前这是通过向 ashx 页面发送表单来实现的。该页面本质上是检查表单,然后执行正确的服务器端页面,从而生成 HTML 或该页面 HTML 的 PDF 文档。

在客户端,我提前知道我们是否要获取 PDF 或 HTML,当它是 HTML 时,我打开一个新窗口并将表单发布到该窗口,一切正常。当它是 PDF 时,我不会更改表单的目标,它仍保留在当前页面上。

这有效,用户会看到一个保存对话框,并且当前页面不会更改或丢失。

我遇到的问题是生成 PDF 需要 1-15 秒。我想做的是弹出一个请稍候对话框。显示弹出窗口很容易,我不确定的是我如何知道关闭弹出窗口?弹出窗口将是当前页面中的一个 div。

最佳答案

弹出窗口可以有一个客户端计时器,用于轮询服务器是否完成任务。长时间运行的服务器任务应该更新数据库表或轮询服务可以访问的服务器缓存对象中的进度。

MSDN 杂志上的几篇旧文章。您应该能够在 asp.net Ajax 等较新的库中使用相同的概念。

Reporting Task Progress With ASP.NET 2.0

Simplify Task Progress with ASP.NET "Atlas"

关于asp.net - 请等待对话框并在 ASP.NET 中下载文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/183279/

相关文章:

具有自定义角色的 ASP.NET Windows 身份验证

javascript - 如何在客户端 Javascript 或 JQuery 中访问 ViewState 变量

python - 软链接(soft link)和硬链接(hard link)

Asp.net MVC 验证动态表单

javascript - Server.MapPath(~) 替代方案

c# - 在没有 MVC 的 ASP.NET 中与 Razor 的相关链接

javascript - 在 ASP.NET 中使用 javaScript 时,模式弹出窗口不会隐藏

asp.net - View 状态和 session 之间有什么不同?

asp.net - 句柄子句需要在包含类型或其基类型之一中定义的 WithEvents 变量

c# - ASP.NET Razor : Form not submitting