我尝试使用ASP MVC模型通过ajax调用按钮单击下载pdf文件 当我点击我的按钮时,什么也没发生,但是当我在url上添加控制器方法时,我的文件被下载了。 我只想按下按钮
下载它JS:
$('#PrintTimeSheet').click(function () {
$.ajax({
type: 'POST',
url: "/Home/DownloadFile",
success: function (response) {
}
});
});
控制器:
public FileResult DownloadFile()
{
Document PDF = new Document();
MemoryStream memoryStream = new MemoryStream();
PdfWriter writer = PdfWriter.GetInstance(PDF, memoryStream);
PDF.Open();
PDF.Add(new Paragraph("Something"));
PDF.Close();
byte[] bytes = memoryStream.ToArray();
Response.ContentType = "application/pdf";
Response.AddHeader("Content-Disposition", "attachment;filename=Receipt-test.pdf");
Response.BinaryWrite(memoryStream.ToArray());
return File(bytes, "application/pdf");
}
答案 0 :(得分:5)
不要使用Ajax下载文件。你可以在this question中看到它真的很棘手。
最好使用GET
和window.location.href
因为文件正在下载异步。
$('#PrintTimeSheet').click(function () {
window.location.href = "/Home/DownloadFile";
});
[HttpGet]
public FileResult DownloadFile()
{
//your generate file code
}