0

注意:我不想在模态中显示 PDF 内联。相反,我希望浏览器确认文件并允许用户保存或打开它。

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

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

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

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

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

非常感谢您的帮助。

4

3 回答 3

1
    public ActionResult GetPdf(Model modelo)
    {  
        return File(Pdf bytes[], "application/pdf");
    }
于 2013-12-10T16:58:07.373 回答
0

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

于 2013-09-16T21:11:02.217 回答
0

如果您使用的是 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/

于 2015-09-02T13:39:08.010 回答