Asp.net ASPX页面在IE7中不呈现PDF,在Windows XP中不呈现Chrome
我有一个返回PDF的.aspx页面。下面是第_页PreRender上的代码Asp.net ASPX页面在IE7中不呈现PDF,在Windows XP中不呈现Chrome,asp.net,windows,pdf,Asp.net,Windows,Pdf,我有一个返回PDF的.aspx页面。下面是第_页PreRender上的代码 Protected Sub Page_PreRender(sender As Object, e As System.EventArgs) Handles Me.PreRender Dim pdfStream As MemoryStream pdfStream = CType(Cache("PdfViewerContent"), MemoryStream) Response.BufferOut
Protected Sub Page_PreRender(sender As Object, e As System.EventArgs) Handles Me.PreRender
Dim pdfStream As MemoryStream
pdfStream = CType(Cache("PdfViewerContent"), MemoryStream)
Response.BufferOutput = True
Response.ClearContent()
Response.ClearHeaders()
Response.AddHeader("Cache-control", "no-store")
Response.ContentType = "application/pdf"
Response.AddHeader("Content-Length", pdfStream.Length.ToString())
Response.AddHeader("Content-Disposition", "attachment=PDFFile.pdf")
Response.BinaryWrite(pdfStream.ToArray())
Response.Flush()
HttpContext.Current.ApplicationInstance.CompleteRequest()
End Sub
此页面从window.open javascript调用启动
这在使用IE9、Chrome和Firefox的Windows7上运行良好。但是,在运行IE7的Windows XP上,浏览器只是闪烁,没有打开任何窗口。(弹出窗口拦截器被禁用)使用Chrome,我在开发人员控制台“资源被解释为文档,但使用MIME类型应用程序/pdf传输”中出现错误,页面被下载为文件。我认为应该是这样的
Response.AddHeader("Content-Disposition", "attachment; filename=PDFFile.pdf")
另外,我会在Response.Flush()之后调用Response.End()