如何使用不同的查询字符串多次重定向到同一页面?

时间:2019-03-06 15:36:55

标签: vb.net redirect

我有一个页面,该页面包含一个带有数据列表的表和一个图标(在每行上),该图标将用户重定向到带有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并以这种方式放置自定义脚本,也无法真正更改要重定向到的页面。

1 个答案:

答案 0 :(得分:1)

您不能重定向到多个页面(重定向关闭请求),也不能发送多个文件。您唯一的选择是发出将所有文件压缩在一起的请求。您可以使用System.IO.Compression.ZipArchive进行此操作。您无需将zip文件保存在磁盘上,只需发送内存流即可。