MVC3 - 文件下载 - 等待状态指示器

2024-03-07

好的,我已经完成了作业并发现了类似的线程。然而,我还没有找到好的答案。

使用 MVC3、C#、Razor 视图引擎。

我的场景非常简单。我有一个带有调用控制器上的操作的链接的视图。该操作返回动态生成的文件。该过程持续 1 到 10 秒。在此期间,我想锁定用户界面并显示“请稍候”消息。

我的第一次尝试使用了这样的东西:

@Ajax.ActionLink("my test link", "myAction", new { Controller = "myController" }, new AjaxOptions { OnBegin = "ajaxStart", OnComplete = "ajaxStop" }) 

然后,ajaxStart 和 ajaxStop 函数使用 jquery blockUI 脚本来阻止和取消阻止 UI,并显示“请稍候”消息。这是有效的,因为它显示了消息,但不会下载任何文件。经过更多研究,我发现我无法使用 Ajax 来启动文件下载。如果我错了,请赐教。

所以,我回到了正常的 ActionLink。这有效,因为我可以下载文件。我什至可以捕获 .click 事件并阻止 UI 并显示等待消息。但是,我如何知道何时解锁 UI?我如何知道文件保存/打开对话框何时打开?也许如果我能捕捉到该事件,我就可以解锁 UI。

我看过其他帖子,通过将文件生成/下载分解为单独的功能来推荐更复杂的解决方案。我非常想避免必须将文件保存在服务器上,或者必须轮询服务器以查看文件是否已完成。这应该相当简单。

如果有人有任何想法,请告诉我。

谢谢, 托尼


不久前有一篇关于此的帖子:检测浏览器何时接收文件下载 https://stackoverflow.com/questions/1106377/detect-when-browser-receives-file-download

它引用了这个链接:http://geekswithblogs.net/GruffCode/archive/2010/10/28/detecting-the-file-download-dialog-in-the-browser.aspx http://geekswithblogs.net/GruffCode/archive/2010/10/28/detecting-the-file-download-dialog-in-the-browser.aspx

实际上,它的作用是将 cookie(C# 生成的)和文件(用户正在下载的)一起发送到客户端。一旦客户端拥有cookie,理论上就会发生这种情况after文件已下载)。 Javascript 将检查客户端是否有该 cookie,如果有,Javascript 将解锁 UI。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MVC3 - 文件下载 - 等待状态指示器 的相关文章

  • Javascript split 不是一个函数

    嘿朋友们 我正在使用 javascript sdk 通过 jQuery facebook 多朋友选择器在用户朋友墙上发布信息 但是我收到此错误friendId split 不是函数 这是我的代码 function recommendToFr
  • C#中如何移动PictureBox?

    我已经使用此代码来移动图片框pictureBox MouseMove event pictureBox Location new System Drawing Point e Location 但是当我尝试执行时 图片框闪烁并且无法识别确切
  • C++ OpenSSL 导出私钥

    到目前为止 我成功地使用了 SSL 但遇到了令人困惑的障碍 我生成了 RSA 密钥对 之前使用 PEM write bio RSAPrivateKey 来导出它们 然而 手册页声称该格式已经过时 实际上它看起来与通常的 PEM 格式不同 相
  • 将 UMD Javascript 模块导入浏览器

    你好 我正在对 RxJS 进行一些研究 我可以通过在浏览器中引用它来使用该库 如下所示 它使用全局对象命名空间变量 Rx 导入 我可以制作可观察的东西并做所有有趣的事情 当我将 src 更改为指向最新的 UMD 文件时 一切都会崩溃 如下所
  • 有没有办法在 onclick 触发时禁用 iPad/iPhone 上的闪烁/闪烁?

    所以我有一个有 onclick 事件的区域 在常规浏览器上单击时 它不会显示任何视觉变化 但在 iPad iPhone 上单击时 它会闪烁 闪烁 有什么办法可以阻止它在 iPad iPhone 上执行此操作吗 这是一个与我正在做的类似的示例
  • while 循环中的 scanf

    在这段代码中 scanf只工作一次 我究竟做错了什么 include
  • 转发声明和包含

    在使用库时 无论是我自己的还是外部的 都有很多带有前向声明的类 根据情况 相同的类也包含在内 当我使用某个类时 我需要知道该类使用的某些对象是前向声明的还是 include d 原因是我想知道是否应该包含两个标题还是只包含一个标题 现在我知
  • Javascript 假值(null、未定义、false、空字符串:“”或 '' 和 0)和比较(==)运算符 [重复]

    这个问题在这里已经有答案了 当我使用任何一个值时 null undefined false 0 in a if陈述 它总是被评估为谬误 false 另外 这些值的否定 null undefined false 0 in a if语句总是被评
  • 从数据库检查数据的异步解决方案各种循环子句

    我想要做的是异步检查数据库并从中获取结果 在我的应用程序中我试图实现Asynchronously将此步骤解决为 从数据库中检查手机号码JsonArray循环子句的种类 Create JsonArray从结果 打印创建的数组 我学到了足够多的
  • 什么时候虚拟继承是一个好的设计? [复制]

    这个问题在这里已经有答案了 EDIT3 请务必在回答之前清楚地了解我要问的内容 有 EDIT2 和很多评论 有 或曾经 有很多答案清楚地表明了对问题的误解 我知道这也是我的错 对此感到抱歉 嗨 我查看了有关虚拟继承的问题 class B p
  • WPF/C# 将自定义对象列表数据绑定到列表框?

    我在将自定义对象列表的数据绑定到ListBox in WPF 这是自定义对象 public class FileItem public string Name get set public string Path get set 这是列表
  • 为什么编译时浮点计算可能不会得到与运行时计算相同的结果?

    In the speaker mentioned Compile time floating point calculations might not have the same results as runtime calculation
  • 如何使用 crypto-js 解密 AES ECB

    我正在尝试将加密数据从 flash 客户端 发送到服务器端的 javascript 在 asp 中作为 jscript 运行 有几个 javascript Aes 库 但它们实际上没有文档记录 我正在尝试使用 crypto js 但无法让代
  • 在 Shopify 商店中嵌入 Vue 组件

    在产品页面中 我尝试显示自定义 Vue 组件 为简洁起见 该组件根据给定的产品 ID 显示 Firebase 数据库中的一些信息 我最初尝试将其制作为 Shopify 应用程序 以便我可以访问他们的 API 我实现了 OAuth 并且可以检
  • 将控制台重定向到 .NET 程序中的字符串

    如何重定向写入控制台的任何内容以写入字符串 对于您自己的流程 Console SetOut http msdn microsoft com en us library system console setout aspx并将其重定向到构建在
  • 如何隐藏/禁用 Highcharts.js 中的图例框?

    我想问是否可以使用 HighCharts js 库隐藏图表中的所有图例框 var chart object chart renderTo render to type graph type colors graph colors title
  • 测试用例执行完成后,无论是否通过,如何将测试用例结果保存在变量中?

    我正在使用 NUNIT 在 Visual Studio 中使用 Selenium WebDriver 测试用例的代码是 我想在执行测试用例后立即在变量中记录测试用例通过或失败的情况 我怎样才能实现这一点 NUnit 假设您使用 NUnit
  • 如何将服务器服务连接到 Dynamics Online

    我正在修改内部管理应用程序以连接到我们的在线托管 Dynamics 2016 实例 根据一些在线教程 我一直在使用OrganizationServiceProxy out of Microsoft Xrm Sdk Client来自 SDK
  • JavaScript 相对路径

    在第一个 html 文件中 我使用了一个变量类别链接 var categoryLinks Career prospects http localhost Landa DirectManagers 511 HelenaChechik Dim0
  • Vue.js[vuex] 如何从突变中调度?

    我有一个要应用于 json 对象的过滤器列表 我的突变看起来像这样 const mutations setStars state payload state stars payload this dispatch filter setRev

随机推荐

  • Tomcat 的 Nginx 反向代理

    我在 nginx tomcat 7 反向代理设置工作时遇到问题 基本上我想要https 192 168 10 101提供来自上游 cluster webapp 的内容 但是我从我的应用程序中收到 404 页面 任何有关出现问题的提示将不胜感
  • XCode 4.4 尝试下载应用程序数据时出现“权限被拒绝”

    将我的 XCode 更新到版本 4 4 后 似乎无法从我的设备检索应用程序数据 在 Xcode 4 3 以及所有以前的版本 中 我通过管理器 管理器 gt 设备 gt 设备 gt 应用程序 gt 应用程序 gt 下载 下载了我的应用程序数据
  • 基于两列对多维数组中的数据进行分组

    我有一个关联数组的索引数组 如下所示 brand gt ABC model gt xyz size gt 13 brand gt QWE model gt poi size gt 23 brand gt ABC model gt xyz s
  • 向 JFrame 添加新的 WindowListener

    mainFrame addWindowListener new WindowListener Override public void windowClosing WindowEvent e if JOptionPane showConfi
  • 在 aspx 文件中使用内联代码设置文字文本

    在 ASP NET 项目中 我有一个文字 为了设置文本属性 我使用了以下代码
  • 在现实生活中的示例中,何时使用后减/增量与前减/增量? [复制]

    这个问题在这里已经有答案了 可能的重复 如果该值未在语句中的其他任何地方使用 为什么要使用 i 而不是 i https stackoverflow com questions 1392820 why use i instead of i i
  • Linux 内核:获取符号链接背后的真实路径

    我正在研究一些 Linux 内核的东西 我有一个名为 dev blah whatever 的假路径 它指向 dev block real device 问题是lookup bdev将无法遵循符号链接 因此我想通过获取真实路径 dev blo
  • Python CSV 没有属性“Writer”

    有一些代码给我带来了麻烦 它在我的另一个脚本中运行得很好 但我一定把它搞砸了 The if csv 主要是因为我依赖于 argparser 中的 csv 选项 但即使我要在外面运行这个适当的缩进if statement 它仍然返回相同的错误
  • 我可以强制刷新 Facebook 对象的图像 URL 吗?

    我有几个由 Facebook 托管的对象 这些对象已发布到用户的活动日志中 图像的 URL 指向我们的内容交付解决方案 该解决方案重定向到版本化图像 这意味着 URL 可以保持不变 但图像可能会发生变化 正如你在这张图片中看到的 当图像更改
  • CSS 属性开头的 *+ 是什么意思? [复制]

    这个问题在这里已经有答案了 我在 CSS 声明代码中发现了这一点 我现在部分负责 margin 0 0 0 10px margin 4px 0 0 10px margin 3px 0 0 10px 0 the and 0 是我特别关注的 这
  • 为什么 FoldBack 的签名与 F# 中的 Fold 有如此大的不同?

    至少有两件事我不明白 从左侧折叠到右侧折叠的重构不仅需要在签名上进行大量更改 而且在每个地方都需要进行大量更改 具体取决于文件夹功能 没有办法在不翻转参数的情况下将其链接到列表 List foldBack T gt State gt Sta
  • C# 使用通配符复制多个文件并保留文件名

    我需要使用不包含完整信息的文本文件从目录复制多个文件 NCR txt Red 目标目录中有 红1 txt红3 txt红44 txt dest 目录需要有 红1 txt红3 txt红44 txt 我的代码 System IO Director
  • 组内的 Nexus REST API 查询工件

    我有一个 Nexus maven 存储库 我想利用 REST API 来查询我的特定组中的工件列表 我偶然发现了这个文档 但它似乎非常简洁 我找不到我需要的东西 https oss sonatype org nexus restlet1x
  • 使用 Keras 创建自定义条件指标

    我正在尝试使用 keras 为我的神经网络创建以下指标 自定义 Keras 指标 https i stack imgur com fSg0o png 其中 d y pred y true y pred 和 y true 都是向量 使用以下代
  • 在 Pipeline sklearn (Python) 中使用多个自定义类

    我尝试为学生做一个关于 Pipeline 的教程 但我阻止了 我不是专家 但我正在努力改进 所以谢谢你的包容 事实上 我尝试在管道中执行几个步骤来为分类器准备数据帧 第 1 步 数据框的描述 第 2 步 填充 NaN 值 第 3 步 将分类
  • 从hosts文件中获取主机名

    我想从我的模板中获取另一台主机 鉴于以下情况hosts file vm vm hostname monitoring monitoring hostname 我怎样才能访问monitoring hostname从模板 I tried mon
  • 如何使用 jpa/hibernate 在 playframework 子模块中保存模型实体

    我在 PLAY FRAMEWORK 中有一个项目 其中包含几个子模块 每个子模块都有这样的文件夹结构 app controllers models views conf submodulename routes build sbt 我想将所
  • FFMpeg 错误 av_interleaved_write_frame():

    这是我的代码 运行php代码后 FFmpeg version 0 5 Copyright c 2000 2009 Fabrice Bellard et al configuration prefix usr libdir usr lib s
  • ASP.NET 的密码强度控制

    我需要 ASP NET 的密码强度控制 我查看了ajax控制工具包中的控制 但它不是完全可配置的 我需要将它静态地放置在布局上 尝试使用谷歌 Google 密码强度 APIhttp www codeproject com KB ajax G
  • MVC3 - 文件下载 - 等待状态指示器

    好的 我已经完成了作业并发现了类似的线程 然而 我还没有找到好的答案 使用 MVC3 C Razor 视图引擎 我的场景非常简单 我有一个带有调用控制器上的操作的链接的视图 该操作返回动态生成的文件 该过程持续 1 到 10 秒 在此期间