对象或嵌入在 MVC 中不起作用
Object or embed is not working in MVC
我正在尝试在 MVC 视图页面中使用 <embed>
或 <object>
将 PDF 显示到视图中。
View.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 文件。
路径:
你能不能做一个 returns FileContentResult 读取文件并只在前端显示内容的方法?
并添加点击此处下载,以便在需要时下载。
干杯!
根据 https://developer.mozilla.org/en-US/docs/Web/HTML/Element/object 上的文档,<object>
标签的 data
属性必须是:
The address of the resource as a valid URL.
(粗体是我的,在这里说明一下)。
换句话说,您需要指定指向PDF的URL,而不是文件路径。浏览器无法访问服务器的磁盘,因此无法直接从中读取。它所能做的就是向 URL 发出 HTTP 请求以获取文档。
所以它可能是这样的:
<object data="documents/@ViewBag.FileName" type="application/pdf" >
但是当然,您使用的具体内容取决于您放置文档的位置,以及您已经放入 ViewBag.Filename 中的具体内容。
请注意,无法从 Web 访问 MVC 应用程序中的 App_Data
文件夹(并且不希望使其可访问,因为它包含诸如数据库文件之类的内容),因此您必须将其他地方的 PDF 更合适。
我正在尝试在 MVC 视图页面中使用 <embed>
或 <object>
将 PDF 显示到视图中。
View.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 文件。
路径:
你能不能做一个 returns FileContentResult 读取文件并只在前端显示内容的方法?
并添加点击此处下载,以便在需要时下载。
干杯!
根据 https://developer.mozilla.org/en-US/docs/Web/HTML/Element/object 上的文档,<object>
标签的 data
属性必须是:
The address of the resource as a valid URL.
(粗体是我的,在这里说明一下)。
换句话说,您需要指定指向PDF的URL,而不是文件路径。浏览器无法访问服务器的磁盘,因此无法直接从中读取。它所能做的就是向 URL 发出 HTTP 请求以获取文档。
所以它可能是这样的:
<object data="documents/@ViewBag.FileName" type="application/pdf" >
但是当然,您使用的具体内容取决于您放置文档的位置,以及您已经放入 ViewBag.Filename 中的具体内容。
请注意,无法从 Web 访问 MVC 应用程序中的 App_Data
文件夹(并且不希望使其可访问,因为它包含诸如数据库文件之类的内容),因此您必须将其他地方的 PDF 更合适。