注意:我不想显示与模态内联的PDF。相反,我希望浏览器确认该文件并允许用户保存或打开它。
我在MVC 4中有一个jQueryUI模式对话框。对话框是模态的。对话框的内容来自部分视图,工作正常。对话框本身只有一个按钮,并成功获取所有JavaScript来处理客户端数据输入检查。
令我头疼的是我在部分视图中嵌入了一个用于显示PDF文件的按钮。我可以成功调用一个JavaScript函数来调用从另一个服务器获取文件的控制器。我甚至可以将文件转换为字节数组,最后一行是
return File(contents, "application/pdf", "PropsedChanges.pdf");
然而它不会打开,因为我怀疑模态对话框正在阻止它。
我在模型对话框之外做了类似的事情,它为我提供了IE屏幕底部的保存/打开选项,或者在其他浏览器中以正确的方式提供。
有没有办法在浏览器外的客户端PC /设备上的注册PDF查看器中显示PDF,需要询问是否要保存或打开它?正如我怀疑的那样,由于模态对话而没有发生这种情况。
非常感谢帮助。
答案 0 :(得分:1)
public ActionResult GetPdf(Model modelo)
{
return File(Pdf bytes[], "application/pdf");
}
答案 1 :(得分:0)
尝试使用新窗口打开PDF。像target =“_ new”或“blank”。
答案 2 :(得分:0)
如果您使用的是Asp.net 5,请通过nuget安装MvcPdfActionResult
PM> Install-Package MvcPdfActionResult
只需使用返回类型,因为控制器中的PdfActionResult将输出PDF文档而不是HTML。这会使用iTextXmlWorker库将HTML转换为PDF。
...
return PdfActionResult(model);
}
在asp.net 5 MVC项目中从您的剃刀视图生成pdf文档。 https://www.nuget.org/packages/MvcPdfActionResult/