PDF 被扔到浏览器控制台,而不是下载

卡马尔

我正在使用 Rotativa从视图生成 PDF 文件,效果很好,但现在在浏览器上,我得到了控制台抛出的原始文件,没有下载对话框,没有警告,什么都没有。这是我的代码:

控制器

public ActionResult DescargarPDF (int itemId) {
        var presupuesto = ReglasNegocio.Fachada.Consultas.ObtenerPresupuesto(itemId);     
        return new Rotativa.PartialViewAsPdf("_PresupuestoFinal", presupuesto) {
            FileName = "Presupuesto_" + itemId + ".pdf",
            PageSize = Rotativa.Options.Size.A4
        };
    }

jQuery 脚本:

$(".convertirPDF").on("click", function (id) {
    var itemId = $(this).data('itemid');
    Pdf(itemId);
});

function Pdf(itemid) {
    var id = itemid;

    $.ajax({
        method: "POST",
        url: 'DescargarPDF',
        data: { itemId: id },
        cache: false,
        async: true,
    });
};

HTML 上的按钮

<button class="convertirPDF btn btn-secondary btn-info" data-itemid="@item.Id">PDF</button>

我已经在控制器上尝试了几个代码(结果相同),因为脚本和视图似乎工作正常。但是,我怀疑,也许 html 或脚本需要一些调整来通知浏览器它必须下载文件?

提前谢谢大家。

卡马尔

我找到了解决方案。这并不优雅,但它有效。所以我不一定需要使用ajax来发出请求,也不需要为按钮提供功能。我有点确定这个问题与 JS 和/或 jQuery 有关。不过,有一种更简单的方法可以做到这一点。

我将我的 html 按钮更改为:

<a href="DescargarPDF/[email protected]" target="_blank" class="btn btn-secondary btn-info">PDF</a>

所以它看起来像一个按钮,但它实际上是我的控制器方法的链接。我还删除了该按钮的脚本,现在它会下载文件。不是有意的名字,但仍然如此。

谢谢大家。快乐编码。

更新

我一直在做同一个项目,我想我找到了为什么我的 PDF 文件被扔进控制台。

问题是,jQuery 发出请求,因此 jQuery 管理响应。有那么简单吗。如果您检查的官方文档.post(),你会看到以下内容:

成功回调函数传递返回的数据,根据响应的 MIME 类型,该数据将是 XML 根元素或文本字符串。它还传递响应的文本状态。

从 jQuery 1.5 开始,成功回调函数还传递了一个“jqXHR”对象(在 jQuery 1.4 中,它传递了 XMLHttpRequest 对象)。

大多数实现将指定一个成功处理程序。

而我不是,所以,默认情况下,它只是将它放到控制台。我希望这能给这个问题带来一些启发并有所帮助。快乐编码。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

PDF强制下载,而不是在浏览器中打开

来自分类Dev

在浏览器中查看pdf文件,而不是下载

来自分类Dev

在浏览器中打开PDF而不是下载它

来自分类Dev

PDF强制下载,而不是在浏览器中打开

来自分类Dev

如何指示Chrome浏览器下载PDF而不是在浏览器中预览(预览)?

来自分类Dev

Spring-在浏览器中显示PDF文件而不是下载

来自分类Dev

如何强制浏览器在ASP.NET Webforms中下载而不是查看PDF文档

来自分类Dev

PDF在浏览器中显示为二进制文本,而不是被下载

来自分类Dev

如何下载PDF文件而不是使用dotnetbrowser在浏览器视图中打开

来自分类Dev

pdf在浏览器中打开,但下载后会寻找密码

来自分类Dev

Flask:强制下载pdf文件以在浏览器中打开

来自分类Dev

从嵌入式Tableau报表导出为PDF时,浏览器控制台中发生未经授权的错误

来自分类Dev

浏览器控制台错误

来自分类Dev

浏览器控制台错误

来自分类Dev

控制浏览器中流式PDF的显示

来自分类Dev

Firebase - firebase 存储文件如何从浏览器控制台变为“不可下载”?

来自分类Dev

Laravel - pdf 文件的响应返回奇怪的文本,而不是在浏览器中显示 pdf

来自分类Dev

Ruby on Rails模型字段是通过控制台而不是通过浏览器更新的

来自分类Dev

调试时将打开浏览器而不是控制台应用程序

来自分类Dev

Ruby on Rails模型字段是通过控制台而不是通过浏览器更新的

来自分类Dev

更改pdf查看器以在Chrome浏览器中进行下载

来自分类Dev

更改pdf查看器以在Chrome浏览器中进行下载

来自分类Dev

如何从浏览器保存.pdf?

来自分类Dev

在浏览器上显示PDF

来自分类Dev

PDF专用的文件浏览器

来自分类Dev

如何从浏览器保存.pdf?

来自分类Dev

在浏览器中查看 pdf 流

来自分类Dev

区分控制台和浏览器的javascript

来自分类Dev

从浏览器控制台调用Angular click事件

Related 相关文章

  1. 1

    PDF强制下载,而不是在浏览器中打开

  2. 2

    在浏览器中查看pdf文件,而不是下载

  3. 3

    在浏览器中打开PDF而不是下载它

  4. 4

    PDF强制下载,而不是在浏览器中打开

  5. 5

    如何指示Chrome浏览器下载PDF而不是在浏览器中预览(预览)?

  6. 6

    Spring-在浏览器中显示PDF文件而不是下载

  7. 7

    如何强制浏览器在ASP.NET Webforms中下载而不是查看PDF文档

  8. 8

    PDF在浏览器中显示为二进制文本,而不是被下载

  9. 9

    如何下载PDF文件而不是使用dotnetbrowser在浏览器视图中打开

  10. 10

    pdf在浏览器中打开,但下载后会寻找密码

  11. 11

    Flask:强制下载pdf文件以在浏览器中打开

  12. 12

    从嵌入式Tableau报表导出为PDF时,浏览器控制台中发生未经授权的错误

  13. 13

    浏览器控制台错误

  14. 14

    浏览器控制台错误

  15. 15

    控制浏览器中流式PDF的显示

  16. 16

    Firebase - firebase 存储文件如何从浏览器控制台变为“不可下载”?

  17. 17

    Laravel - pdf 文件的响应返回奇怪的文本,而不是在浏览器中显示 pdf

  18. 18

    Ruby on Rails模型字段是通过控制台而不是通过浏览器更新的

  19. 19

    调试时将打开浏览器而不是控制台应用程序

  20. 20

    Ruby on Rails模型字段是通过控制台而不是通过浏览器更新的

  21. 21

    更改pdf查看器以在Chrome浏览器中进行下载

  22. 22

    更改pdf查看器以在Chrome浏览器中进行下载

  23. 23

    如何从浏览器保存.pdf?

  24. 24

    在浏览器上显示PDF

  25. 25

    PDF专用的文件浏览器

  26. 26

    如何从浏览器保存.pdf?

  27. 27

    在浏览器中查看 pdf 流

  28. 28

    区分控制台和浏览器的javascript

  29. 29

    从浏览器控制台调用Angular click事件

热门标签

归档