私は自分のサーバーにどこでPDFファイルを作成しているのかをリクエストしています。今、私はこのファイルを新しいウィンドウ/タブに表示するか、単にそれをダウンロードしたいと思います。どうやってやるの?返信PDFをajaxリクエストで返す
私の要求
$.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");
}
通常のフォームをサーバーに送信するか、javascriptが新しいウィンドウでブラウザを転送できる作成されたpdfドキュメントにアドレスを返すかのいずれかと思う... –
一般的な解決策:これは私のために働いたMVC-ajax呼び出しによるバイト[]からのモーダルダイアログ) –
kamgman