2012-12-19 21 views
5

我有一個返回PDF的FileResult操作。我想將這個PDF嵌入到對象標籤中。當我將操作插入到對象標記的數據屬性中時,如下所示,在Chrome中不會檢索或顯示PDF。 (PDF格式的顯示在Firefox中使用Adobe插件 - 我不關心IE)使用提供PDF文件結果的ASP.NET MVC操作在Chrome中填充對象標記的數據屬性

<object data="@Url.Action("GetPDF", "PDFCreation", new {id= Model.DocumentId})" type="application/pdf"></object> 

它所有的工作,否則 - 對象標籤可與直接鏈接到一個PDF文件系統(例如, ,data =「〜/ Content/test.pdf」),以及上面的操作,如果粘貼到地址欄中,則下載PDF。

有什麼想法?謝謝!

+1

我認爲這是一個插件問題,如果我在IE9中嘗試它,沒有任何反應。如果它在Chrome中執行,它會抱怨沒有加載pdf插件。如果我在Firefox中試用它,一切正常。 – Slicksim

+0

你是對的 - 在Firefox(使用Adobe插件)中工作,但不在Chrome中(當然,IE是一個失敗的原因,我只是在那裏使用pdf.js iframe)。 – Gabe

回答

1

通過這個答案固定它:Returning a file to View/Download in ASP.NET MVC

必須附加內容處置標題,並將內容處置的「內聯」值設置爲true。

var doc = ... 
var contentDisposition = new ContentDisposition 
{ 
    FileName = doc.FileName, 
    Inline = true 
}; 

Response.AppendHeader("Content-Disposition", contentDisposition.ToString()); 

return File(doc.Path, MediaTypeNames.Application.Pdf); 
+0

非常感謝您的幫助Slicksim!非常感謝。 – Gabe

+1

非常感謝,一直在尋找一段時間,爲什麼pdf不會在Chrome中加載,但會爲IE,改變一個布爾固定它。 – bigcakes

3

我設法讓IE瀏覽器顯示這是後仰使用FileContentResult一個PDF和下面的對象標籤

<object> 
    <embed src="@Url.Action("GetPDF", "PDFCreation", new {id= Model.DocumentId})" type="application/pdf"></embed> 
</object> 

可能是值得一試

+0

仍然不適用於Chrome。 (我相信IE9會忽略對象標記並回退到對象標記內的任何內容。) – Gabe

相關問題