No1*_*ver 3 c# asp.net asp.net-mvc asynchronous async-await
我的 mvc 控制器中有这个方法:
public ActionResult BlaBla()
{
if (!ModelState.IsValid)
return new HttpNotFoundResult();
// ...
}
Run Code Online (Sandbox Code Playgroud)
我想创建它的异步版本。所以,我想把代码改成这样:
public async Task<ActionResult> BlaBla()
{
if (!ModelState.IsValid)
return new HttpNotFoundResult(); // Compiling error: this line is not working
// ...
}
Run Code Online (Sandbox Code Playgroud)
async Task<...>我的问题是使用style时如何从我的 mvc 控制器返回错误代码(404、500、...) ?
采取行动必须有目的async,对吗?通常此目的是执行 I/O 绑定操作,例如通过您的异步服务公开的远程 TCP/HTTP 调用。
在此,典型的控制器操作如下所示:
public async Task<ActionResult> BlaBla()
{
if (!ModelState.IsValid)
{
return new HttpNotFoundResult();
}
MyViewModel model = await myService.GetTheModel();
return View(model);
}
Run Code Online (Sandbox Code Playgroud)
在此示例中,由于您已经等待async方法内的操作,因此它可以正常编译。如果您没有任何async操作,那么采取行动就没有什么意义async。它造成的伤害会大于帮助。所以现在您应该问自己的问题是:我真的有一些异步服务可以利用 I/O 完成端口来证明我需要使用异步操作吗?
| 归档时间: |
|
| 查看次数: |
2471 次 |
| 最近记录: |