0

我正在尝试使用MVC 视图页面<embed><object>在 MVC 视图页面中显示 PDF。

查看.cshtml

<object data="@Server.MapPath(ViewBag.FileName)"  type="application/pdf" >
If you are unable to view file, you can download from
</object>

当我查看页面时,我得到了正确的 PDF 路径,但 PDF 在页面中不可见。 在此处输入图像描述

我的相同代码正在处理简单的 HTML 文件。

小路: 在此处输入图像描述

4

2 回答 2

2

根据https://developer.mozilla.org/en-US/docs/Web/HTML/Element/object上的文档,标签的data属性<object>必须是:

作为有效 URL的资源地址。

(粗体字是我的,为了说明这一点)。

换句话说,您需要指定指向 PDF 的 URL,而不是文件路径。浏览器无法访问服务器的磁盘,因此无法直接从中读取。它所能做的就是向 URL 发出 HTTP 请求以获取文档。

所以它可能是这样的:

<object data="documents/@ViewBag.FileName"  type="application/pdf" >

但当然,您使用的确切内容取决于您放置文档的位置,以及您已经放入 ViewBag.Filename 的内容。

请注意,App_Data无法从 Web 访问 MVC 应用程序中的文件夹(并且不希望使其可访问,因为它包含数据库文件之类的内容),因此您必须将 PDF 放置在其他更合适的位置。

于 2018-06-15T12:59:31.197 回答
-3

你不能做一个返回 FileContentResult 的方法来读取文件并只在前端显示内容吗?

并添加一个单击此处下载以便在必要时能够下载它。

干杯!

于 2018-06-15T12:30:30.290 回答