Как я могу перенаправить на одну и ту же страницу несколько раз с другой строкой запроса? - PullRequest
0 голосов
/ 06 марта 2019

У меня есть страница, которая содержит таблицу со списком данных и значок (в каждой строке), который перенаправляет пользователя на новую страницу aspx с queryString и выполняет некоторую пользовательскую логику, чтобы затем загрузить файл.Пользователь попросил, чтобы мы сделали кнопку «загрузить все», чтобы им не нужно было проходить и вручную нажимать каждый значок в каждой строке.

Мой код близок, я чувствую, но он зависнет послепервый файл загружен и никогда не будет прогрессировать

Вот код, который у меня есть до сих пор

 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 Ответ

1 голос
/ 06 марта 2019

Вы не можете перенаправить на несколько страниц (перенаправление закрыть запрос), а также вы не можете отправить несколько файлов. Единственным вариантом будет запрос на сжатие всех файлов. Вы можете сделать это с System.IO.Compression.ZipArchive . Вам не нужно сохранять zip на диске, вы можете просто отправить поток памяти.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...