У меня есть метод контроллера, который выполняет поиск в БД для пользователя, который вошел в систему, затем он отправит электронное письмо с подтверждением, похожее на это:
[HttpPost]
public async void ResendConfirmationEmail(string username)
{
var user = await Usermanager.FindByNameAsync(username);
try { SendRegistrationEmail(user); }
catch (Exception e)
{
//TODO: LOGGIN EMAIL ERROR
throw e;
}
}
Я хочу вызвать это из ajaxфункция как это:
var ResendRegEmail = function (identity) {
$.ajax({
type: "POST",
url: "/Customer/ResendConfirmationEmail",
data: { username: identity },
success: function (data) {
$("#ResendModal").modal('show');
$("#msgSuccess").html("Email has been sent succesfully please check your email.");
},
error: function (request, textStatus, errorThrown) {
$("#ResendModal").modal('show');
$("#msgError").html(textStatus + " " + errorThrown);
}
})
}
[AllowAnonymous]
public async void SendRegistrationEmail(JustAskUser user)
{ code here }
, если я удаляю асинхронную работу, функция resendCOnfirmationEmail работает должным образом, но бизнес-требование использует асинхронную синхронизацию, чтобы поддерживать поток сайта как можно быстрее.,В настоящее время получение ресурса не загружается 500 ошибка
, но затем я получаю сообщение об ошибке от "sendregistrationEmail" - {"Асинхронная операция не может быть запущена в настоящее время. Асинхронные операции могут быть запущены только в пределах асинхронного обработчика или модуля иливо время определенных событий в жизненном цикле страницы. Если это исключение произошло во время выполнения страницы, убедитесь, что страница помечена как <% @ Page Async = \ "true \"%>. Это исключение также может указывать на попытку вызвать асинхронную операцию \ ".void \ "метод, который обычно не поддерживается при обработке запросов ASP.NET. Вместо этого асинхронный метод должен возвращать задачу, а вызывающая сторона должна ожидать ее."}