У меня есть следующая кнопка, которая загружает очень большой PDF, вызывая функцию DownloadPdf()
в DownloadController
.
<a type="button" class="btn btn-default btn-lg float-right" style="background-color:dodgerblue" title="Download as PDF" href="@Url.Action("DownloadPdf", "Download", new { id = Model.Id })" )">
<span data-feather="download" style="color:white" aria-hidden="true"></span>
</a>
Проблема в том, что метод DownloadPdf()
занимает очень много времени, потому что он извлекает множество мелких фрагментов из различных баз данных и объединяет их в один PDF-файл. Сбор данных занимает пару секунд, а также преобразование документа в PDF с помощью PdfSharp
.
.
У меня такой вопрос: поскольку DownloadPdf()
- это метод на стороне сервера, может ли пользовательский интерфейс клиента отображать обновление статуса процесса DownloadPdf()
? Например, он было бы здорово, если бы DownloadPdf()
мог установить некоторую переменную со строковым значением «Сбор данных 1 из 10» или «Создание PDF», отправить значение этой переменной клиенту и отобразить его пользователю.