В моем контроллере я хочу создать PDF, сохранить его и знать только, если есть ошибки, я не хочу получать файл для загрузки
public ActionResult CreatePdf(string IDUser, int IDCourse)
{
try
{
string path = Server.MapPath("~/Public/Pdf/");
var fileName = Guid.NewGuid().ToString();
Document pdfDoc = new Document(PageSize.A4, 25, 25, 25, 15);
pdfDoc.SetPageSize(PageSize.A4.Rotate());
var pdfWriter = PdfWriter.GetInstance(pdfDoc, Response.OutputStream);
var fileStream = new FileStream(Path.Combine(path, fileName), FileMode.Create);
pdfWriter = PdfWriter.GetInstance(pdfDoc, fileStream);
pdfDoc.Open();
...
pdfWriter.CloseStream = false;
pdfDoc.Close();
pdfWriter.Close();
fileStream.Close();
db.SaveChanges();
//Response.Buffer = true;
//Response.ContentType = "application/pdf";
//Response.AddHeader("content-disposition", "attachment;filename=\"" + fileName + "\"");
//Response.Cache.SetCacheability(HttpCacheability.NoCache);
//Response.Write(pdfDoc);
//Response.End();
//return File(Response.OutputStream, "application/pdf", fileName.ToString()); // if I want download
return Content("ok");
catch (Exception ex)
{
return Content("error");
}
}
Вначале я загрузил pdf, теперь я вызываю эту процедуру в цикле, чтобы создать больше pdf, поэтому я просто хочу знать, есть ли ошибки при создании.
С точки зрения я вызываю в AJAX (JQuery) этот контроллер
public ActionResult Create(string listIDUser, int IDCourse)
{
string msg = string.Empty;
try
{
var IDUser = listIDUser.Split(',');
foreach (var item in IDUser)
{
var pdf= CreatePdf(item, IDCourse);
if (pdf!= null)
{
...
}
else
{
return new JsonResult() { Data = new { result = "err", msg = "..." + item } };
}
}
return new JsonResult() { Data = new { result = "ok", msg = "Perfect!" } };
}
catch (Exception ex)
{
return new JsonResult() { Data = new { result = "err", msg = ex.Message } };
}
}
, который делает циклы и вызывает контроллер CreatePdf, но в браузере с firebug возвращается pdf-файл, а не ответ в json, как я ожидаю!
Спасибо