Когда я нажимаю кнопку, всплывающее окно начальной загрузки появляется там, где существует кнопка для загрузки данных в формате PDF.когда кнопка нажата во всплывающем окне начальной загрузки, то ниже кода запускается и вызывается действие на стороне сервера.
$(".bol_save_as_pdf").click(function () {
$.ajax({
type: "GET",
url: '@Url.Action("GeneratePDF", "TestModal")',
success: function (data) {
alert(data.Msg);
},
error: function (xhr, status, error) {
//$("#dataDiv").html("Result: " + status + " " + error + " " + xhr.status + " " + xhr.statusText)
}
});
return false;
});
Действие на стороне сервера выполняется правильно, но диалог загрузки pdf не появляется, но когда я вызываю то же действие, вставляя URL-адрес браузера, затем загрузка pdfна стороне клиента.
см. мой код действия на стороне сервера
[Route("DownloadPDF")]
[HttpGet]
public void DownloadPDF()
{
//bool IsPdfGenerated = false;
List<Student> studentsVM = new List<Student>
{
new Student {ID=1,FirstName="Joy", LastName="Roy", FavouriteGames="Hocky"},
new Student {ID=2,FirstName="Raja", LastName="Basu", FavouriteGames="Cricket"},
new Student {ID=3,FirstName="Ajay", LastName="Das",FavouriteGames="Foot Ball"},
new Student {ID=4,FirstName="Debu", LastName="Saha", FavouriteGames="Tennis"},
new Student {ID=5,FirstName="Sanjeeb", LastName="Das", FavouriteGames="Hocky"},
};
var viewToString = StringUtilities.RenderViewToString(ControllerContext, "~/Views/Shared/_Report.cshtml", studentsVM, true);
string filepath = HttpContext.Server.MapPath("~/PDFArchives/") + "mypdf.pdf";
MemoryStream workStream = new MemoryStream();
StringReader sr = new StringReader(viewToString);
Document pdfDoc = new Document(PageSize.A4, 10f, 10f, 30f, 0f);
PdfWriter writer = PdfWriter.GetInstance(pdfDoc, System.Web.HttpContext.Current.Response.OutputStream);
//writer.CloseStream = false;
pdfDoc.Open();
XMLWorkerHelper.GetInstance().ParseXHtml(writer, pdfDoc, sr);
pdfDoc.Close();
System.Web.HttpContext.Current.Response.ContentType = "pdf/application";
System.Web.HttpContext.Current.Response.AddHeader("content-disposition", "attachment;" +
"filename=sample.pdf");
System.Web.HttpContext.Current.Response.Cache.SetCacheability(HttpCacheability.NoCache);
System.Web.HttpContext.Current.Response.Write(pdfDoc);
System.Web.HttpContext.Current.Response.End();
}
что не так в моем подходе?
Не загружено окно загрузки pdf, потому что я использую всплывающее окно начальной загрузки?ищу гида.Thaks