У меня есть процесс, который отправляет PDF пользователю через
Response.BinaryWrite(pdf);
После этого я хочу
Response.Redirect("Default.aspx");
Проблема в том, что перенаправление срабатывает до BinaryWrite()
завершено.Я знаю это, потому что я не вижу всплывающее окно для загрузки PDF, как я должен.
Если я удаляю
Response.Redirect("Default.aspx");
Тогда я получаю всплывающее окно, как и должно быть.Итак, здесь есть условие гонки (возможно, это связано с тем, что HTTP не имеет соединения).Я мог бы сделать
Thread.Sleep(5000);
Но это смешно.Есть ли хорошее решение этой проблемы?
Я попробовал AJAX.Это тоже не работает. Из-за проблемы с AJAX и всплывающими окнами я должен использовать обходной путь
window.frames["#pdfPopup"].location.reload();
, чтобы отобразить мое всплывающее окно.
Тогда этот код никогда не запускается ...
alert('before href');//no alert ever displays
window.location.href = "http://www.yahoo.com/";
Это может быть потому, что я вызвал reload ().Есть идеи?
Я подключился к onload для кадра, но это все еще не работает!Тьфу.Я читал, что onload не запускается для фреймов, которые содержат элементы управления ActiveX, включая PDF.Я прочитал это на SO и нескольких сайтах Google.
<iframe id="pdfPopup" style="visibility:hidden;height:0px;width:0px;" onload="Redirect();"></iframe>
onload срабатывает при загрузке страницы, но не когда я вызываю reload и помещаю туда PDF,Итак, я ударил кирпичную стену.У кого-нибудь есть какие-нибудь решения для этого?