У меня есть сайт MVC, где я пытаюсь вызвать метод с async. Мой код, как показано ниже:mvc async await link click wait wait task task
Просмотры
<a href="#" class="submit-download" data-id="24589">Submit Download</a>
$(document).on('click', '.submit-download', function (evt) {
var submit_url = '/SubmitDownloads/24589;
$.ajax({
type: 'POST',
url: submit_url,
success: function (data) {
if (data.Item1)
location.reload();
}
});
});
Контроллер
[HttpPost]
public async Task<JsonResult> SubmitDownloads(int id)
{
var respository = new WorkflowRepository();
var result = await respository.SubmitAsync(id);
return Json(result, JsonRequestBehavior.AllowGet);
}
Repository Метод
//db service call which will take much longer time
public async Task<Tuple<bool, string>> SubmitAsync(id)
{
//long running method here
await Task.Delay(20000);
return new Tuple<bool, string>(true, "done with " + id);
}
Когда пользователь нажимает на ссылку «Отправить Загрузка» в «Представлениях», она быстро выполняет всю функцию, так как ее предполагается делать, а страница показывает отзывчивое, как прокручиваемое, меню отлично видно. Но когда я нажимаю на любую ссылку на странице, она ждет завершения всей операции (20 секунд), а затем перенаправления на соответствующий URL.
Если я изменил задачу. Делай на 50 секунд, ссылка перейдет на 50 секунд для перенаправления.
Не могли бы вы рассказать мне, что мне не хватает здесь?
Что вы, кроме как случиться? –