【问题标题】:How do I return MVC File ActionResult of PDF over jQuery modal dialog如何通过 jQuery 模态对话框返回 PDF 的 MVC 文件 ActionResult
【发布时间】:2013-09-16 16:01:29
【问题描述】:

注意:我不想将 PDF 与模态框一起显示。相反,我希望浏览器确认文件并允许用户保存或打开它。

我在 MVC 4 中有一个 jQueryUI 模态对话框。该对话框是模态的。对话框的内容来自工作正常的部分视图。我在对话框本身上只有一个按钮,并且已成功获取所有 JavaScript 来处理客户端数据输入检查。

让我头疼的是,我在局部视图中嵌入了一个按钮,用于显示 PDF 文件。我可以成功调用一个 JavaScript 函数,该函数调用从另一台服务器获取文件的控制器。我什至可以将文件转换为字节数组,最后一行是 return File(contents, "application/pdf", "PropsedChanges.pdf");

但是它不会打开,因为我怀疑模式对话框阻止了它。

我在模型对话框之外做了类似的事情,它在 IE 的屏幕底部或以正确的方式在其他浏览器中为我提供了保存/打开选项。

有没有办法在需要询问他们是否要保存或打开的浏览器之外的客户端 PC/设备上的已注册 PDF 查看器中显示 PDF?我怀疑,由于模态对话框,这不会发生。

非常感谢您的帮助。

【问题讨论】:

  • 你得到答案了吗。我正在尝试在新的浏览器窗口中打开 PDF,但不是 PDF 查看器

标签: jquery-ui asp.net-mvc-4 pdf modal-dialog


【解决方案1】:
    public ActionResult GetPdf(Model modelo)
    {  
        return File(Pdf bytes[], "application/pdf");
    }

【讨论】:

    【解决方案2】:

    尝试使用新窗口打开您的 PDF。比如 target="_new" 或 "blank"。

    【讨论】:

      【解决方案3】:

      如果您使用的是 Asp.net 5,请通过 nuget 安装 MvcPdfActionResult

      PM> Install-Package MvcPdfActionResult
      

      只需在控制器中使用返回类型作为 PdfActionResult 将输出 PDF 文档而不是 HTML。这将使用 iTextXmlWorker 库将 HTML 转换为 PDF。

        ...
        return PdfActionResult(model);
      }
      

      在 asp.net 5 MVC 项目中从您的 razor 视图生成 pdf 文档。 https://www.nuget.org/packages/MvcPdfActionResult/

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-06-09
        • 1970-01-01
        • 2015-10-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多