我的要求是,只要点击图像,就应该在浏览器上打开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?,但由于没有提供解决方案,我再次发布此消息。任何人都可以让我知道如何实现这一目标?
由于
答案 0 :(得分:1)
两件事。
你为什么要通过ajax发帖而不是常规帖子?通过常规发布,您的代码可能会有效。
如果您确实需要使用ajax,那么您在ajax调用成功时会在数据对象中收到结果,而且我没有看到您对它执行任何操作,这就是为什么您不这样做看到发生的一切。