使用JSON和MVC3将PDF返回到浏览器

时间:2012-12-22 00:32:49

标签: javascript asp.net-mvc jquery pdf

我的要求是,只要点击图像,就应该在浏览器上打开PDF。我正在使用Jquery ajax [POST调用]来调用ASP.NET MVC端,并在响应上返回一个文件。由于我需要将大量数据从客户端传递到服务器,因此需要从jquery端进行POST。

HTML部分:

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

JS Part:点击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文件。我看过帖子Return PDF to browser using JSON and MVC?,但由于没有提供解决方案,我再次发布此消息。任何人都可以让我知道如何实现这一目标?

由于

1 个答案:

答案 0 :(得分:1)

两件事。

  1. 你为什么要通过ajax发帖而不是常规帖子?通过常规发布,您的代码可能会有效。

  2. 如果您确实需要使用ajax,那么您在ajax调用成功时会在数据对象中收到结果,而且我没有看到您对它执行任何操作,这就是为什么您不这样做看到发生的一切。