Асинхронное перенаправление в контроллере - PullRequest
0 голосов
/ 13 февраля 2019

У меня есть кнопка на сайте, которая должна - при нажатии - создать файл PDF и вернуть его в новой вкладке браузера.Но мне нужно вернуть его только после того, как метод завершит создание файла.И это должно быть в контроллере, потому что я использую ControllerContext в моей логике.
Я попытался сделать асинхронный контроллер, но он начинает перенаправление, как только я нажал кнопку.
Я думал о Ajax.Actionlink -но в этом случае он не может сделать return.File().
Как я могу сделать фоновый вызов контроллера и перенаправить только после создания метода файла?
Приложение Asp.Net MVC.
Мой взгляд:

  @Html.ActionLink("Выгрузка", "Unload", null, new { @class = "btn btn-primary btn-lg", @target = "_blank" })   
// or this
    @Ajax.ActionLink("Create Pdf", "Unload", new AjaxOptions { HttpMethod = "GET" })

Контроллер:

[Authorize]
    [HttpGet]
public async Task<ActionResult> Unload()
{

    byte[] viewData = view.BuildFile(ControllerContext);
    ...
    byte[] combinedViewData =  await Task.Run(()=> combineViewData(viewDatas));

    return File(combinedViewData, "application/pdf");

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