Я использую Spreadsheet Gear для генерации и загрузки документа Excel в браузер клиентов.Используя код ниже, документ Excel загружается правильно, но мне нужно браузер, чтобы затем перенаправить пользователя с текущей страницы.Где я иду не так?
Контроллер
[HttpPost]
public ActionResult Checkout(Models.Checkout m, int id)
{
var model = this.CreateModel<Models.Checkout>();
if (model.Checkout().Success)
{
this.HandleExport(result.Workbook, "Inspection", new { controller = "Checkout", id = id, action = "Detail" });
}
return View(model);
}
HandleExport
public void HandleExport(IWorkbook workbook, string fileName, object routeValues)
{
HttpContext.Response.Clear();
HttpContext.Response.ContentType = "application/vnd.ms-excel";
HttpContext.Response.AddHeader("Content-Disposition", $"attachment; filename =\"{fileName}_{ DateTime.Now:yyyy-MM-dd_hh-mm-ss}\".xlsx");
workbook.SaveToStream(HttpContext.Response.OutputStream, FileFormat.OpenXMLWorkbook);
HttpContext.Response.Flush();
HttpContext.Response.End();
HttpContext.Response.RedirectToRoute(routeValues);
}
Я пытался установитьRedirectToRoute
вызов после Flush
, но до End
, и он все еще не перенаправляет.Если я но RedirectToRoute
до Flush, то он перенаправляет, но файл не загружается в браузер.