Как: сбросить состояние кнопки Bootstrap после возврата файла с контроллера - PullRequest
0 голосов
/ 03 апреля 2019

У меня есть кнопка, которая при нажатии выполняет экспорт файла и может быть длительным процессом на сервере, поэтому я хотел бы перевести кнопку в состояние «загрузки».

ОднакоПоскольку контроллер возвращает файл, кнопка никогда не «сбрасывается» и возвращается в нормальное состояние.Мне нужно какое-то событие javascript, где я могу вызвать сброс.

Javascript

 $(".load-spin").on('click', function () {
      var btn = $(this).closest("ul").prev();
      $(btn).button("loading");
 });

HTML

 <button class="btn btn-default dropdown-toggle" type="button" id="dropdownMenu1" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true">
      Book Actions <span class="caret"></span>
 </button>
 <ul class="dropdown-menu" aria-labelledby="dropdownMenu1">
 @if (item.Published)
 {
      <li><a href="@Url.Action("Manage", new { id = item.BookId })">Manage/Edit</a></li>
      <li><a href="javascript:void(0)" onclick="confirmDelete(@item.BookId)">Delete</a></li>
      <li><a class="load-spin" href="@Url.Action("Duplicate", new { id = item.BookId })">Duplicate</a></li>
      <li role="separator" class="divider"></li>
      <li><a class="load-spin" href="@Url.Action("Export", new { id = item.BookId })">Export Configuration</a></li>
      <li><a class="load-spin" href="@Url.Action("Download", new { id = item.BookId })">Download (for offline use)</a></li>
 }
 </ul>

Контроллер

 public ActionResult Export(int id)
 {
      // omitted for brevity
      return File(fullFileName, "application/zip", fileName);
 }

Какого рода событие или действие я должен прослушивать, чтобы вызвать $ (btn) .button ("reset")?

1 Ответ

1 голос
/ 03 апреля 2019

Вместо того, чтобы добавлять действие в URL, добавьте событие onclick, а затем обработайте его с помощью функции, которая отправляет действие в контроллер, у которого есть ответ, где вы можете прочитать ответ и действовать соответственно.

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