Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# MVC异步函数未捕获异常_C#_Asp.net Mvc_Async Await - Fatal编程技术网

C# MVC异步函数未捕获异常

C# MVC异步函数未捕获异常,c#,asp.net-mvc,async-await,C#,Asp.net Mvc,Async Await,我对MVC中的异步编程没有太多经验,我也不确定到底发生了什么。 我有一个具有以下功能的MVC控制器: [HttpPost] [ValidateAntiForgeryToken] public async Task<IActionResult> SectionMassUpdate(SectionMassUpdateViewModel model) { if (ModelState.IsValid)

我对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);
        }

就这样,当我发布到控制器中的SectionMassUpdate函数时,什么也没有发生。它转到调用,没有抛出异常或其他任何东西。如果我使SectionMassUpdate函数同步并删除async和Task,则会引发异常。为什么会这样?我该怎么做才能抛出异常,而不是让页面什么都不做

简单的答案是使您的服务方法更新异步,并在控制器中的调用语句中使用wait。

简单的答案是使您的服务方法更新异步,并在控制器中的调用语句中使用wait。

您真的在等待函数吗?如果您不这样做,异常被多任务处理吞没是很常见的:那是不可能发生的!您确定
ModelState.IsValid
是否为
true
?不可能。你真的在等功能吗?如果您不这样做,异常被多任务处理吞没是很常见的:那是不可能发生的!您确定
ModelState.IsValid
是否为
true
?不可能是.ModelState.IsValid是真的Paulo Morgado。当我单步执行时,它进入更新调用,然后停止调试。没有发生任何情况,应用程序正在运行。我可以单击页面上的submit按钮,调试再次开始。我已经将这两种方法(控制器方法和服务更新方法)更改为async,但仍然没有引发异常。ModelState.IsValid为true Paulo Morgado。当我单步执行时,它进入更新调用,然后停止调试。没有发生任何情况,应用程序正在运行。我可以单击页面上的submit按钮,调试再次开始。我已经将这两种方法(控制器方法和服务更新方法)更改为async,但仍然没有引发异常。
public ServiceStatus Update(int sectionID, int compID, DateTIme dateCompleted)
{
     throw new Exception();
}