MVC asyn c функция не перехватывает исключение - PullRequest
1 голос
/ 09 мая 2020

У меня нет большого опыта программирования asyn c в MVC, и я не уверен, что происходит. У меня есть контроллер MVC с функцией:

        [HttpPost]
        [ValidateAntiForgeryToken]
        public async Task<IActionResult> SectionMassUpdate(SectionMassUpdateViewModel model)
        {
            if (ModelState.IsValid)
            {

                var status = _sectionService.Update(model.SectionID, model.CompID, model.DateCompleted);

                if (!status.IsValid)
                {
                    ModelState.AddValidationErrors(status);

                }
                else { return Json(new { success = true }); }

            }

            return PartialView("_sectionUpdate", model);
        }

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

public ServiceStatus Update(int sectionID, int compID, DateTIme dateCompleted)
{
     throw new Exception();
}

Как есть, когда я отправляю сообщение в функцию SectionMassUpdate в контроллере, ничего не происходит. Он переходит к вызову, и никаких исключений не возникает. Если я сделаю функцию SectionMassUpdate синхронной и удалю asyn c и Task, будет выброшено исключение. Почему это происходит и что мне делать, чтобы исключение было создано вместо того, чтобы страница ничего не делала.

1 Ответ

0 голосов
/ 09 мая 2020

Простым ответом будет сделать ваш метод обслуживания Update asyn c и использовать await в вызывающем операторе в контроллере.

...