2011-05-11 29 views
1

目前,我有一個問題,即填充一個PDF文檔的iframe,但是這個問題只發生在IE中。使用PDF填充iframe - 使用MVC [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控制器動作:

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只是保留在以前的內容,根本不會改變。

回答

1

經過幾種不同的方法和迭代測試 - 我確定它是IE8-9和Adobe Reader 9-10版本之間的衝突。我增加了以下meta標籤包含iframe的窗口,它解決了所有的問題:

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

這至少應該工作,直到更新/修復而成。

0

您是否嘗試過直接點擊pdf網址?如果它在瀏覽器中加載,那麼您可以將問題縮小到iframe。如果Adobe Reader彈出,那麼你知道它與IE插件有關的問題。

-1

我有和彈簧mvc一樣的問題。我重申了,如果我把Iframe放在某個標籤裏面,比如'util:panel',iframe就不會在IE 8中加載de pdf內容。當我把iFrame放在標籤之外時,一切正常。