我有一个返回PDF流的ASP.NET MVC应用程序。我正试图将该流嵌入到视图中。我在控制器中有此操作
[AuthorizeResultVisible]
public ActionResult GetPDFStream(int reportId)
{
byte[] pdfByteStream = GetReportBytes(reportId);
Response.Clear();
Response.AddHeader("Content-Disposition","inline; filename=sample.pdf");
Response.AddHeader("Content-Type","application/pdf");
Response.ClearHeaders();
Response.AddHeader("Content-Length", pdfByteStream.Length.ToString());
return new FileContentResult(pdfByteStream, "application/pdf");
}
在我看来,我正在尝试两者,对象标签和/或iframe标签
<object data="'<%= Url.Action("GetPDFStream", "ResultActions", new {reportId = Model.reportId }) %>" #zoom=150′ width = "100%" height="525" id="iFramePdf" frameBorder="1" type="application/pdf"/>
<iframe src="'<%= Url.Action("GetPDFStream", "ResultActions", new {reportId = Model.reportId }) %>"/>
然而,无论我做什么,嵌入的PDF都不会显示。相反,错误消息弹出,显示
HTTP错误404.0-找不到
您要查找的资源已被删除、名称已更改或暂时不可用。
然而,当我进入一个源时,我能够检索链接并确认链接是否有效。一旦我将链接粘贴到浏览器中,它就会显示PDF,但最初不会显示PDF
有人能帮吗
提前感谢
通过添加Request.Url.GetLeftPart(UriPartial.Authority(找到解决方案
<iframe src="**<%= Request.Url.GetLeftPart(UriPartial.Authority)** + Url.Action("GetPDFStream", "ResultActions", new {reportId = Model.reportId }) %>" #zoom=150′ width = "100%" height="525" id="iFramePdf" frameBorder="1" type="application/pdf"/>