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.