5

我有一个返回 PDF 的 FileResult 操作。我想将此 PDF 嵌入到对象标签中。当我将操作插入到对象标记的数据属性中时,如下所示,Chrome 中不会检索或显示任何 PDF。(PDF 显示在带有 Adob​​e 插件的 Firefox 中 - 我不关心 IE。)

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

否则一切正常 - 对象标签与文件系统上的 PDF 的直接链接一起使用(例如,data="~/Content/test.pdf"),以及上面的操作,如果硬粘贴到位置栏中,下载 PDF。

有什么想法吗?谢谢!

4

2 回答 2

3

我设法让 IE 显示使用 FileContentResult 和以下对象标记返回的 Pdf

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

也许值得尝试一下

于 2012-12-19T09:59:15.230 回答
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);
于 2012-12-19T12:09:36.503 回答