0

我的要求是每当单击图像时,都应在浏览器上打开 PDF。我正在使用 Jquery ajax [POST call] 来调用 ASP.NET MVC 端,并在响应中返回一个文件。jquery 端需要 POST,因为我需要将大量数据从客户端传递到服务器。

HTML部分:

 <span data-id='printSettings' title='Generate PDF' class="preferenceSettings"></span>

JS 部分:当点击 Generate PDF 图标时触发。

var textToSend = $('.microChartTable', self.element)[0];
var dataToSend = { htmlContent: textToSend.outerHTML };
$.ajax({
        url: "/EADashboard/ConvertToPDF",
        data: JSON.stringify(dataToSend),
        type: 'POST',                                        
        contentType: 'application/json',
        success: function (data) {

         } // -- success ends here

      });

ASP.NET 端:在我的控制器中,我有以下代码:

 [HttpPost]
    public FileResult ConvertToPDF(HtmContent content)
    {

        string fileName = Server.MapPath("~/SeedData/data.pdf");
        string contentType = "application/pdf";

        return new FilePathResult(fileName, contentType);
     }  

现在 PDF 生成代码是正确的,只是 PDF 文件没有在浏览器端打开。我看过使用 JSON 和 MVC 将 PDF 返回到浏览器的帖子?但由于没有提供解决方案,我再次发布。谁能让我知道如何实现这一目标?

谢谢

4

1 回答 1

1

两件事情。

  1. 为什么你通过 ajax 发帖而不是普通帖子?通过定期发布,您的代码可能会起作用。

  2. 如果您确实需要使用 ajax 执行此操作,那么您将在 ajax 调用成功的数据对象中收到结果,并且我没有看到您对它执行任何操作,这就是为什么您看不到任何事情发生的原因。

于 2012-12-22T00:43:32.413 回答