我正在为我的项目添加业务数据层,目前我正在将它连接到MVC应用程序。我将拥有能够回答视图和控制器的控制器,这些控制器将用于WebApi,以便我可以进行异步AngularJS调用。
我是否需要对我的数据执行异步和同步调用,还是可以使用经典MVC控制器的异步函数? (我不确定视图和控制器之间的通信是如何实现的,所以我担心如果我可能会引起一些问题,因为默认情况下它会对数据库进行同步调用)
答案 0 :(得分:3)
或者我可以使用经典MVC控制器的异步函数吗?
你当然可以。至少在最近的MVC版本中(我不记得何时添加了支持)。
您不需要做任何特别的事情,只需标记您的行为async
并返回Task<ActionResult>
。
您可以在操作中自由混合阻塞和异步方法。
例如
public async Task<ActionResult> Details(id) {
var res = await db.Entities.FindAsync(id);
if (res == null) {
return HttpNotFound();
}
return View(res);
}