Перенаправление на маршрут после сброса ответа - PullRequest
0 голосов
/ 12 декабря 2018

Я использую 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, то он перенаправляет, но файл не загружается в браузер.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...