负载生成的PDF数据为ASP.NET MVC的IFRAME(Load Generated PDF D

2019-10-22 12:07发布

我有一个ASP.NET网站,生成报告为PDF。 我想加载PDF成和IFRAME在我的观点。 但是,当我尝试,它总是提示我下载PDF。 我已经使用文件()方法试过,返回新FileContectResult(),甚至只用Response.BinaryWrite(),但似乎没有这样的伎俩。 任何人有任何好的建议?

下面是从查看剃刀代码:

<script>
    $(document).ready(function () {
        var url = $('#reportUrl').val();
        $("#iframe1").attr("src", url);
    });
</script>
<input type="hidden" id="reportUrl" value="@Url.Action("ContactListPDF2","Reports")" />
<div class="block-head">
    <div class="item-content">
        <iframe id="iframe1" style="border: 1px solid black; height: 500px; width: 100%">

        </iframe>
    </div>
</div>

这里是从我的控制器适当的方法:

public ActionResult ContactListPDF2()
{
    byte[] reportData = ReportsModel.GetContactListPDF();
    return new FileContentResult(reportData, "application/pdf");
}

我知道我失去了一些东西简单明了,但平均的生活中,我能确定它是什么。

Answer 1:

如果可能的话,我会沟的iframe和JavaScript去<embed>

public ActionResult ContactListPDF2()
{
    byte[] reportData = ReportsModel.GetContactListPDF();
    return new FileContentResult(reportData, "application/pdf");
}

<embed src="@Url.Action("ContactListPDF2","Reports")" />


Answer 2:

记得要加

Response.AppendHeader("Content-Disposition", "inline; filename=name.pdf");

虽然我有同样的问题,但没有解决方案在Firefox中不工作,直到我改变了我的浏览器的选项。 在Options

窗口,然后Application Tab更改Portable Document FormatPreview in Firefox



文章来源: Load Generated PDF Data into IFRAME on ASP.NET MVC