HttpHandler пишет на перенаправленную страницу перед отправкой файла

Кажется, я никогда не найду никаких документов на.net, а официальные (если они правильные) - безнадежный лабиринт.

Я перенаправляю пользователя с помощью jQuery в HttpHandler на новой странице, где я на лету создаю и отправляю HTML-таблицу (и называю это файлом Excel). Я могу собрать и отправить файл без задержки (даже огромных) благодаря укладчикам.

Я хотел бы сообщить пользователю на новой странице, что я создаю файл и т. Д., Когда файл создается и отправляется.

Когда я делаю context.response.write перед отправкой моих заголовков Excel, я получаю:

 Ошибка сервера в приложении '/'

Сервер не может добавить заголовок после отправки заголовков HTTP. 

Есть ли способ добиться того, чего я хочу?

Спасибо заранее!

2 ответа

Решение

Вам нужна временная целевая страница, которая перенаправляет на страницу загрузки.

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

<body>
<div> Your file is getting created... Please wait patiently.
</div>
<script>
    window.location.href = 'http://yoursite.com/documentpage/blah/foo/bar';
</script>
</body>

Что именно вы пытаетесь достичь? Насколько я понимаю, вы создаете какой-то лист Excel и отправляете его клиенту. Я предполагаю, что для того, чтобы клиент распознал ваш контент как лист Excel, вы пытаетесь отправить несколько заголовков ответа (например, mime-type).

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

Поэтому я думаю, что вам понадобится новая целевая страница с уведомлением и каким-либо javascript или мета-перенаправлением (или гиперссылкой или кнопкой) на URL, который заставляет создавать и загружать Excel.

Другие вопросы по тегам