【发布时间】:2025-12-10 02:10:02
【问题描述】:
我有一个 MVC 项目,在我的视图中我有一个指向我的控制器中的方法的链接,该方法返回一个可下载的文件。
My Method 从各种 API 下载数据并将数据处理到文件中。此方法需要 10-15 分钟才能完成。
我想在我的视图中显示进度,最好的方法是什么?我应该在我的方法设置的控制器中使用全局变量,并使用异步 javascript 循环来获取这些值吗?
有什么好的方法可以从 api 请求中获取进度,我使用以下方法:
var httpWebRequest = (HttpWebRequest)WebRequest.Create(DataValues.xx + "url/" + label + "/" + UUID + "?action=" + act);
httpWebRequest.ContentType = "application/json";
httpWebRequest.Method = "PUT";
httpWebRequest.Credentials = new NetworkCredential(DataValues.user, DataValues.password);
httpWebRequest.PreAuthenticate = true;
【问题讨论】:
-
将您的状态保存到会话变量中,并每隔 x 秒使用 ajax 查询状态,然后更新视图 ;-)
-
您的 API 方法必须以某种方式定期发送状态(以百分比或其他形式),然后您需要在 jQuery 中轮询更新(或者如果您使用的是 HTML5,请利用服务器发送事件)。
标签: c# asp.net-mvc progress