【发布时间】:2012-04-11 11:08:24
【问题描述】:
我有一个 ajax 请求到我正在创建 PDF 文件的服务器。现在我想在新窗口/标签中显示这个文件或者只是下载它。我该怎么做?
我的请求
$.ajax({
url: '/Document/CreatePDF',
type: 'POST',
data: {
docid: documentId,
dataId: array
},
traditional: true,
success: function (data) {
}
});
[HttpPost]
public FileStreamResult CreatePDF(long docid, List<long> dataId)
{
var document = _rep.LoadDocument(docid.ToString(), Server.MapPath("~/Documents/") + docid + ".xml");
var exporter = new PDFExporter(document);
MemoryStream fileStream = exporter.CreatePDF();
byte[] PdfByte = fileStream.GetBuffer();
fileStream.Flush();
fileStream.Close();
HttpContext.Response.AddHeader("content-disposition","attachment; filename=form.pdf");
return new FileStreamResult(fileStream, "application/pdf");
}
【问题讨论】:
-
我认为您应该向服务器发送普通表单或将地址返回到创建的 pdf 文档,javascript 可以在新窗口中将浏览器转发到该地址...
-
通用解决方案:这对我有用(通过 MVC-ajax 调用来自 byte[] 的 PDF 模式对话框)stackoverflow.com/questions/15477525/…>
标签: asp.net-mvc pdf jquery response