C# IHttpHandler Response.ContentType=";申请表/pdf";闯入IE8

C# IHttpHandler Response.ContentType=";申请表/pdf";闯入IE8,c#,asp.net,pdf,content-type,C#,Asp.net,Pdf,Content Type,这可以在Chrome和Firefox中使用,但IE8没有显示任何内容。。。 当我在webforms按钮中尝试相同的代码时,单击它在所有三种浏览器上都有效 如何在IE8中实现这一点 public class ShowPDF : IHttpHandler { public void ProcessRequest(HttpContext context) { // create PDF document var document = new PdfDocume

这可以在Chrome和Firefox中使用,但IE8没有显示任何内容。。。 当我在webforms按钮中尝试相同的代码时,单击它在所有三种浏览器上都有效

如何在IE8中实现这一点

public class ShowPDF : IHttpHandler
{

   public void ProcessRequest(HttpContext context)
   {
       // create PDF document
       var document = new PdfDocument();
       var page = document.AddPage();
       var font = new XFont("Verdana", 20, XFontStyle.Bold);
       var gfx = XGraphics.FromPdfPage(page);
       gfx.DrawString("Hello, World!", font
           , PdfSharp.Drawing.XBrushes.Black
           , new PdfSharp.Drawing.XRect(0, 0, page.Width, page.Height)
           , PdfSharp.Drawing.XStringFormats.Center
       );

       // Send PDF to browser
       var stream = new System.IO.MemoryStream();
       document.Save(stream, false);
       context.Response.Clear();
       context.Response.ContentType = "application/pdf";
       context.Response.AddHeader("content-length", stream.Length.ToString());
       context.Response.BinaryWrite(stream.ToArray());
       context.Response.Flush();
       stream.Close();
       context.Response.End();
   }

   public bool IsReusable
   {
       get
       {
           return false;
       }
   }
}

解决了!这取决于浏览器配置

@BrianRogers-感谢您测试此功能。我尝试了“window.location.href='ShowPDF.ashx';”,正如您所做的那样,IE8显示了一个空白页面。这使我怀疑我的浏览器配置。我卸载了Foxit Reader并安装了Adobe Reader。现在一切正常


令人困惑的是,当我在一个aspx服务器端的按钮点击中显示pdf的代码时,IE8显示的pdf很好!算了吧!出于这个原因,我之前没有质疑我的浏览器配置。

如果代码与FF和Chrome一起工作,那么问题很可能是应用程序/pdf mime类型未在IE中注册。你能从IE访问其他pdf链接吗?是的,当我将其放入aspx按钮单击中时,它在IE8中工作正常。当我把它放入页面加载时,它什么也不显示。你说的“放入页面加载”是什么意思?你能给我们看看你放在那里的代码片段吗?我尝试了上面的代码(没有PdfSharp组件,所以我替换了一个实际的PDF,并将其加载到MemoryStream中),它在WindowsXP上的IE8中运行良好。我从表单上的按钮触发下载,onclick执行“window.location.href='ShowPDF.ashx'