我有文件控制器操作,在某些情况下可能需要几分钟才能运行。我想为我们的用户提供视觉指示,表明该操作正在运行,例如消息,旋转器或进度栏。问题是,我很难弄清楚如何在行动完成的前端"检测"。
我一直在用Ajax打电话给FileSult操作,但这无效,因为Ajax无法将文件返回到浏览器。我还研究了异步的动作和任务,但是看起来FileSult不支持"等待"关键字,我认为这是必要的。
在这一点上,我不知道下一步要做什么,并且对思想/想法非常开放。
编辑:
我按照Bobek的建议进行了工作。基本上,我将PDF文件保存到磁盘,并将文件路径作为ActionResult内容(FullFilePath)返回。然后,在我的页面上,我使用这样的东西在执行操作时显示了一个小旋转器GIF,然后在文件完成后链接到该文件。
var img = $("img#reportLoadingIcon");
var link = $('a#exportedFileLink');
link.hide();
img.show();
$.ajax({
url: url,
success: function (result) {
link.attr({target: '_blank', href: result});
link.show();
img.hide();
}
});
您可以通过AJAX将其作为常规后的操作,而不是返回文件,您可以将路径返回到文件并将用户重定向到该路径。