Экспорт отрендеренной HTML-страницы в Word не работает в IE - PullRequest
1 голос
/ 17 марта 2011

У меня есть обработанная HTML-страница, которую я экспортирую в MS Word и загружаю по нажатию кнопки.

Вот фрагмент кода при нажатии кнопки.

` Me.EnableViewState = False
    Response.ContentType = "application/vnd.ms-word"
    Response.AddHeader("Content-Disposition", "attachments;filename=XXXXXXX.doc")
    Response.Buffer = True
    Response.BufferOutput = True`

Функциональность отлично работает в Firefox и IE, когда я проверил в среде тестирования системы (локально). Однако, когда он был перенесен на хост-сервер (производственную среду), функциональность не работает в IE, но все еще отлично работает в Firefox.

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

В IE просто не открывается окно загрузки, которое мы получим при изменении типа отображаемого содержимого HTML и сбрасывании потока ответов. Исключение не выбрасывается.

Я получил следующий заголовок ответа:

HTTP/1.0 200 OK
Cache-Control: private 
Content-Length: 15189 
Content-Type: application/vnd.ms-word; 
charset=utf-8 Server: Microsoft-IIS/7.5 X-AspNet-Version: 2.0.50727 
Content-Disposition: attachments;filename=NewAccountForm.doc X-Powered-By: ASP.NET 
Date: Fri, 18 Mar 2011 10:18:07 GMT X-Cache: MISS from Gateway X-Cache-Lookup: MISS from Gateway:808 Via: 1.0 Gateway (squid/3.0.STABLE10) Proxy-Connection: keep-alive

Ответы [ 2 ]

1 голос
/ 17 марта 2011

Добавляет ли ваша размещенная среда заголовки http? IIS можно легко настроить для добавления заголовков , которые портят то, что вы хотите отправить.Это на самом деле довольно часто, и может быть проблемой.Вам нужно определиться с этим наверняка, поэтому вот совет для исследования:

Попробуйте использовать класс WebClient и посмотрите на заголовки Response .

Редактировать - обновлено

Я только что заметил - вы не забыли поставить

Response.Clear();

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

0 голосов
/ 17 марта 2011

Я устанавливаю Response.Charset = "" и всегда выполняю Response.Flush (), Response.End () и Response.Close () после экспорта HTML.

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