c# - 将生成的 PDF 数据加载到 ASP.NET MVC 上的 IFRAME 中

标签 c# asp.net asp.net-mvc pdf iframe

我有一个 ASP.NET 网站,可以生成 PDF 格式的报告。我想将该 PDF 加载到我的 View 上的 IFRAME 中。但当我尝试时,它总是提示我下载 PDF。我尝试过使用 File() 方法,返回一个新的 FileContectResult(),甚至只使用 Response.BinaryWrite() 但似乎没有任何效果。有人有什么好的建议吗?

这是 View 中的 Razor 代码:

<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>

这是我的 Controller 中的适当方法:

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

我知道我错过了一些简单而明显的东西,但对于卑鄙的生活,我可以确定它是什么。

最佳答案

如果可能的话,我会放弃 iframe 和 javascript,转而使用 <embed>

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

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

关于c# - 将生成的 PDF 数据加载到 ASP.NET MVC 上的 IFRAME 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29425989/

相关文章:

c# - 我应该如何使用 ServiceStack 返回一个大文本文件?

c# - 如何使用 linq to entities 将数据绑定(bind)到 asp.net treeview?

c# - 了解 PagedList mvc 和 Entity Framework (慢查询)

javascript - 在表格中单击按钮时读取输入文本值

c# - TryParse 方法如何工作?

c# - 如何将 Java 列表 XML 导入 C#

c# - 如何定义相互依赖的属性

c# - Unity Framework - 将整数和字符串传递到已解析的对象中

c# - 在 Web API 中转发和存储请求流

jquery - 向 mvc 应用程序添加样式