嗨,我有一个大问题。 我有一个来自 Wcf 服务的 byte[] receveid。字节数组表示一个 pdf 文件。 在 Controller 中,我想这样做:
PDFDto pdfDTO = new PDFDTO();
pdfDTO.pdfInBytes = pdfInBytes; //the byte array representing pdf
return PartialView("PopupPDF,pdfDTO);
在 View 中我想这样做:
<object data="@Model.pdfInBytes" width="900" height="600" type="application/pdf"> </object>
但似乎不正确。 我在整个互联网上搜索过,有很多关于这个问题的帖子,但没有一个完全符合我的情况。 你有什么想法吗?非常感谢!
最佳答案
我建议在 Controller 上创建另一个操作 designed specifically for rendering the PDF data .然后只需在 data
属性中引用它即可:
data="@Url.Action("GetPdf", "PDF")"
我不确定您能否在 DOM 中转储原始 PDF 数据而不会遇到某种编码问题。尽管我从未尝试过,但您也许可以像图像一样做。但是,为了演示和图像看起来像:
src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7"
因此,假设可以完成相同的操作,它可能如下所示:
@{
String base64EncodedPdf = System.Convert.ToBase64String(Model.pdfInBytes);
}
@* ... *@
<object data="data:application/pdf;base64,@base64EncodedPdf"
width="900" height="600" type="application/pdf"></object>
不过,我仍然坚持我最初的回应,创建一个新的 Action 。
关于c# - 使用 html5 将 byte[] 显示为 pdf,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17276392/