使用PDF填充iframe - 使用MVC [IE问题]

时间:2011-05-11 14:34:26

标签: asp.net-mvc pdf iframe

目前,我在使用PDF文档填充iframe时出现问题,但此问题仅发生在IE中。

基本布局:

我有一个包含项目列表(附件)的屏幕,可以是图像,文本或pdf。当用户点击其中一个项目时 - 它将调用控制器操作[ViewAttachment],它将返回所请求的项目并将其显示在iframe中。

目前适用于所有数据类型,但IE中的PDF除外。 (Firefox,Chrome等都会在iframe中显示PDF而不会出现问题。)

我以前使用的是Adobe Reader 9,最近升级到10,希望能解决这个问题。我会附上一些代码,看看是否有人对如何解决这个问题有任何建议。

填充iframe的代码:(为了便于阅读,移至两行)

$(".viewattachment").live('click',function () 
{ 
   $("iframe#test").attr("src","<%=Url.Action("ViewAttachment","Images") %>?
   attachment=" + $(this).next().val());
}); 

ViewAttachment Controller Action:

public ActionResult ViewAttachment(string attachmentGuid)
{
      Attachment attachment= imageAgent.GetAttachment(attachmentGuid);

      Stream resultStream = new MemoryStream();
      resultStream =  StorageProviders[attachment.ProviderName]
                      .ReadFile(attachment.FileReference);

      resultStream.Position = 0;
      FileStreamResult result = new FileStreamResult(resultStream, 
                                                     attachment.ContentType);

      return result;
}

备注:

  • 我试图在Adobe Reader中切换“在浏览器中显示PDF”,但没有成功。
  • 目前正在测试IE8。
  • 点击PDF进行查看时,iframe只会保留在之前的内容中,并且根本不会发生变化。

3 个答案:

答案 0 :(得分:1)

经过几种不同的方法和迭代测试 - 我确定它是IE8-9和Adobe Reader 9-10版本之间的冲突。我在包含iframe的窗口中添加了以下元标记,并解决了所有问题:

<meta http-equiv="X-UA-Compatible" content="IE=7" />

这应该至少有效,直到进行更新/修复。

答案 1 :(得分:0)

您是否尝试过直接点击pdf网址?如果它在浏览器中加载,那么您可以将问题缩小到iframe。如果弹出Adobe Reader,那么您就知道IE插件存在问题。

答案 2 :(得分:-1)

我在使用spring mvc时遇到了同样的问题。我发布了如果我把Iframe放在某些标签中,比如'util:panel',iframe不会在IE 8中加载de pdf内容。当我把iFrame放在标签之外时,一切正常。