如何让用户在asp.net mvc 2中异步下载多个文件?

时间:2011-07-13 21:02:44

标签: c# asp.net-mvc-2 asynchronous

我正在使用ASP.NET MVC 2.0& .NET framework 3.5 sp1。

我有一个当前采用viewmodel作为参数的动作。该操作的返回类型为FileResult。它在我的应用程序中用于生成pdf并将其流式传输给用户以供下载。有没有办法让这个动作异步运行,以便多个文件可以流回用户?我知道这很难看,但这是用户要求的,而b / c隐私&权限问题,这些文件只存在于内存中,因此我无法将它们压缩在一起并将其流式传输。从本质上讲,用户可以单击他想要下载的文件,并为每个文件显示下载对话框。

我正在考虑让我的控制器继承AsyncController并实现MyActionAsync& MyActionCompleted类型方法。根据我自己的测试,我认为这是不可能完成的。有人可以验证这个吗?

1 个答案:

答案 0 :(得分:3)

对服务器的一个请求只能返回单个文件。因此,您的代码应该可以正常工作 - 用户单击链接并获取文件,单击另一个链接并获取另一个文件。

如果你想拥有像“file1 [],file2 [x],file3 [x],file4 []这样的复选框,我认为你可以在相应的链接上调用点击JavaScript - 只要响应有正确的标题它应该显示文件保存对话框。我认为用户到期也会很奇怪。