【发布时间】:2013-05-14 04:47:45
【问题描述】:
我正在从数据库中获取多级动态菜单。目前我已经成功调用它,但我想让它异步。
这是我的代码;
protected override void OnActionExecuting(ActionExecutingContext filterContext)
{
var menus = Uow.Menus.GetAll()
.Select(m => new ParentMenuViewModel()
{
MenuId = m.MenuId,
Name = m.Name,
ParentId = m.ParentId
})
.ToList<ParentMenuViewModel>();
ViewBag.Menus = CreateVM(0, menus);
base.OnActionExecuting(filterContext);
}
public IEnumerable<ParentMenuViewModel> CreateVM(int parentid, List<ParentMenuViewModel> list)
{
return list.Where(m=> m.ParentId==parentid)
.Select(m=> new ParentMenuViewModel()
{
MenuId = m.MenuId,
Name = m.Name,
ParentId = m.ParentId,
ChildMenus = CreateVM(m.MenuId, list)
});
}
那么,如何使用 async 和 await 关键字来实现异步?
请注意,它会循环直到孩子完全加载;
让它异步(上面的代码)甚至是一个好习惯吗?
【问题讨论】:
-
除非你有一个实际的异步操作(你没有),否则让它异步是没有意义的
-
那么,如果我将其标记为异步,这将没有积极的反馈?
标签: c# asp.net-mvc asp.net-mvc-4 asynchronous async-await