开发者

Exporting rendered HTML page to Word is not working in IE

开发者 https://www.devze.com 2023-02-17 17:01 出处:网络
I have a rendered HTML page that I am exporting to MS Word and downloading on a button click. Here is the code snippet in the button click.

I have a rendered HTML page that I am exporting to MS Word and downloading on a button click.

Here is the code snippet in the button click.

` Me.EnableViewState = False
    Response.ContentType = "application/vnd.ms-word"
    Response.AddHeader("Content-Disposition", "attachments;filename=XXXXXXX.doc")
    Response.Buffer = True
    Response.BufferOutp开发者_JAVA百科ut = True`

The functionality works perfectly well in Firefox & IE when I checked in system testing environment (locally). However when it was moved on to the hosting server (production environment) the functionality is not working in IE but is still working perfectly in Firefox.

I am not sure on where to check for the exact issue. Could it be a caching related problem?

In IE it is just not opening the download window which we will obtain when the rendered HTML content type is changed and the response stream is flushed. No exception is thrown.

I received the following response header:

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


Is your hosted environment adding http headers? IIS could easily be configured to add headers that are messing up what you want to send out. It's actually quite common, and could be the issue. You'll need to determine this for sure, so here's a suggestion for investigating:

Try using a WebClient class and look at the Response headers.

Edit - updated

I just noticed - did you remember to put

Response.Clear();

before adding headers? It may not be the hosting environment at all. However, given that it works locally and not at your hosting environment, and assming that it is the same code, it still looks to me like something is different about the hosted environment, and the most logical option would be the headers.


I set Response.Charset = "" and always do Response.Flush(), Response.End(), and Response.Close() after I export the HTML.

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号