Я хочу создать PDF-файл из HTML, который будет загружен в браузере. Файл сгенерирован успешно, но я не знаю, как показать этот файл в браузере, загружающем через ajax, я попытался сделать это с постом ajax, но это не сработало. это работало с методом get как: window.location = "/Proposal/DownloadProposal?companyName=" + companyText + "&message=" + message;
Но длина моего сообщения превышает 2000 символов, и вызовы не выполняются на сервере.
Мой код выглядит следующим образом:
Это мой вызов ajax.
$("#btnDownloadProposal").on("click", function () {
var message = $("#rtxtContent").data("kendoEditor").value();
var download = true;
var companyText = $("#ddlCompany").data("kendoComboBox").text();
if (download) {
showLoading();
message = encodeURIComponent(message);
//window.location = "/Proposal/DownloadProposal?companyName=" + companyText + "&message=" + message;
//hideLoading();
try {
$.ajax({
url: '@Url.Action("DownloadProposal", "Proposal")',
data: { companyName: companyText, message: message },
dataType: "json",
//contentType: "application/json; charset=utf-8",
type: "POST",
error: function (data) {
hideLoading();
},
success: function (returnValue) {
debugger;
//window.location = '/Proposal/DownloadProposal?file=' + returnValue;
}
});
}
catch (e) {
hideLoading();
console.log(e.message);
}
}
});
Это код c # на стороне сервера.
[ValidateInput(false)]
[HttpPost]
public ActionResult DownloadProposal(string companyName, string message)
{
Byte[] result = null;
var memStream = new MemoryStream();
var pdf = TheArtOfDev.HtmlRenderer.PdfSharp.PdfGenerator.GeneratePdf(message, PdfSharp.PageSize.A4);
pdf.Save(memStream);
result = memStream.ToArray();
var contentType = new System.Net.Mime.ContentType(System.Net.Mime.MediaTypeNames.Application.Pdf);
return File(result, contentType.ToString(), "Proposal.pdf");
}
Заранее спасибо, пожалуйста, предоставьте мне решение ...