В настоящее время я работаю над приложением, в котором появляется диалоговое окно с информацией о получаемом элементе (пользователь просто вводит полученную сумму). Пользователь вводит изменения (полученную сумму), а затем сохраняет. После сохранения я предлагаю пользователю создать pdf файл с подтверждением (клиент хотел увидеть изменения в печатном виде). PDF правильно генерируется и предлагается пользователю через диалог Open/Save/Cancel.
Мой вопрос в том, есть ли способ просто заставить PDF открыть автоматически без приглашения на открытие/сохранение/отмена? Причина, по которой я хочу, чтобы можно было закрыть диалог за кулисами, когда всплывает pdf, поэтому пользователю не нужно закрывать его самостоятельно.
Ниже я до сих пор.
Посмотреть
$.getJSON('@Url.Action("ReceiveProduct", "PurchaseOrder")', model, function (result) {
//Save was successful
if (result) {
var createPrintOut = confirm("Do you wish to create a print out?");
if (createPrintOut) {
var url = '@Url.Action("ViewPrintOut", "PurchaseOrder")';
window.location = url + "?POId=" + $("#PurchaseOrderId").val() + "&PId=" + $("#ProductId").val();
}
контроллер
public ActionResult ViewPrintOut(int POId, int PId)
{
//Make sure user has proper permissions
if (!_permissionService.Authorize(StandardPermissionProvider.ManageOrders))
return AccessDeniedView();
var purchaseOrder = _purchaseOrderService.GetPurchaseOrderById(POId);
string fileName = string.Format("purchaseorderproduct_{0}_{1}.pdf", PId, DateTime.Now.ToString("yyyy-MM-dd-HH-mm-ss"));
string filePath = System.IO.Path.Combine(this.Request.PhysicalApplicationPath, "content\\files\\ExportImport", fileName);
_pdfService.PrintPurchaseOrderProductsToPdf(purchaseOrder, PId, _workContext.WorkingLanguage, filePath);
var bytes = System.IO.File.ReadAllBytes(filePath);
return File(bytes, "application/pdf", fileName);
}
Добавьте следующую строку перед оператором return.
Response.AppendHeader("Content-Disposition", "inline; filename="+ filename);
и удалите ссылку на имя файла в Return.
return File(bytes, "application/pdf");
Измените Window.Location на
window.open(Yoururl,'_blank');