vibhanshu mirani Ответов: 6

Response.redirect() после загрузки файла не происходит


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

Происходит либо один из двух вариантов, то есть либо загружается pdf-файл, либо перенаправляется страница, но оба они не происходят вместе.

Shahin Khorshidnia

Ответ не работает без запроса.

solutions@ashish

Во-первых, я хочу сказать здесь, что функция Response.redirect работает с запросом сервера

Вы можете попробовать следующее решение для решения вашей проблемы просто попробуйте привязать тег для перенаправления вашего пользователя на другую страницу и на целевой странице вы можете обеспечить автоматическую загрузку файла запроса для пользователя

Afzaal Ahmad Zeeshan

Не могли бы вы поделиться кодом, который у вас есть? Этот вид вопроса является совершенно расплывчатым вопросом, так как мы даже не можем видеть, в чем проблема в вашем коде.

6 Ответов

Рейтинг:
2

bbirajdar

Воспользуйся

Response.Redirect(url, false)


и убедитесь, что вы не используете Response.End() где-либо в этом событии, так как вы должны использовать перенаправление в конце.


saravana__

этот код не работает

vibhanshu mirani

я не использую Response.End() и даже пытался использовать Response.Редирект(url, false) bt все еще не происходит, только одна вещь происходит одновременно либо загрузка файла, либо перенаправление url.

bbirajdar

О. Похоже, что перенаправление выполняется до загрузки файла, даже если вы ставите перенаправление после логики загрузки.

Рейтинг:
2

prot0col

Это код внутри try catch?
Если да, то попробуйте вынуть его из try catch.


vibhanshu mirani

код не находится внутри try catch

Рейтинг:
1

TrushnaK

Используйте Iframes для той же цели. Как же так?
посмотрите ссылки ниже:-
1]http://forums.asp.net/p/1883533/5305880.aspx-что?Скачать%20file%20via%20browser%20and%20redirect[^]
2]http://stackoverflow.com/questions/14922548/asp-net-download-file-using-browser-and-redirect-to-another-page-at-the-same-tim[^]


Или если вы хотите просто скачать файл, то вы хотите перенаправить, то вы можете попробовать вот так:-

Response.AddHeader("Refresh", "5;URL=yourpage.aspx");


Рейтинг:
1

Member 9459230

Меня удивляют все эти неправильные ответы. у solutions@ashish был правильный ответ, но он лишь кратко коснулся его в комментарии, как запоздалая мысль.

Это может показаться нелогичным, но сначала направьте пользователя на страницу, которую вы хотите, чтобы он увидел после загрузки. Например:

Response.Redirect("ThankYouPage.aspx", true);
На этой странице, которую я назвал ThankYouPage.aspx, в заголовке HTML вам понадобится мета-тег, инструктирующий браузер получить загрузку. Он будет установлен с нулевой секундной задержкой, поэтому загрузка и страница будут загружаться одновременно. Метатег будет выглядеть примерно так:
<html><head>
    <title>Thank you for downloading</title>
    <meta http-equiv="refresh" content="0;URL='http://mysite.com/files/download.zip'" />
</head><body>...
Если ваша страница "ThankYouPage" управляется кодом, а не статическим HTML, вы можете использовать свой внутренний код для настройки имени файла загрузки, того, что будет написано на странице и т. д.

Это правильный ответ. Наслаждайтесь!


Richard Deeming

Спрашивали и отвечали ШЕСТЬ ЛЕТ НАЗАД.

Рейтинг:
0

ihiren Parmar

Здравствуй вибханшу Мирани,

Пожалуйста, используйте этот код.

Ответ.Перенаправление("YOurpage.aspx", true);
Ответ.Конец();

Убедитесь в последовательности обеих строк.
Response.End() не может быть раньше - Response.Перенаправлять();