我有一个页面,该页面包含一个带有数据列表的表和一个图标(在每行上),该图标将用户重定向到带有queryString的新aspx页面,并执行一些自定义逻辑以下载文件。用户要求我们单击“全部下载”按钮,这样他们就不必手动单击每一行中的每个图标。
我感觉我的代码已经关闭,但是在下载第一个文件后它将挂起,并且永远不会继续进行。
这是我到目前为止的代码
Protected Sub ibDownloadAll_Click(sender As Object, e As ImageClickEventArgs)
'Get Parameters
'Run stored procedure to get the query string we're going to use
'Fill DataSet
For Each myItem As DataRow In ds.Tables(0).Rows
Response.Redirect("redirectPage?ID=" &myItem.Item("ID")) 'Gets stuck after here
Next
End Sub
我意识到是否添加了第二个参数(表示是否执行了 当前页面应终止)
Response.Redirect("redirectPage?ID=" &myItem.Item("ID"), False)
然后它将到达函数的末尾,按预期方式运行循环,但是仅输出/下载最后一个文件。
是否缺少我想要的东西,或者可以用来多次有效重定向的替代方法?不幸的是,在使用的框架下,我无法使用Response.Write并以这种方式放置自定义脚本,也无法真正更改要重定向到的页面。
答案 0 :(得分:1)
您不能重定向到多个页面(重定向关闭请求),也不能发送多个文件。您唯一的选择是发出将所有文件压缩在一起的请求。您可以使用System.IO.Compression.ZipArchive进行此操作。您无需将zip文件保存在磁盘上,只需发送内存流即可。