异步过程中的同步过程
问题描述:
我正在使用ASP.NET MVC Razor。异步过程中的同步过程
在我的解决方案中,我使用了一个只有一个Action方法的控制器。布局有左导航,顶部和页脚。这三部分的Html部分放置在部分视图中,我在下面调用布局中的部分视图。
<!DOCTYPE html>
<html>
<head>
@{Html.RenderPartial("HeaderScripts");}
</head>
<body class="nav-md">
@{Html.RenderPartial("LeftSideNavigations");}
@{Html.RenderPartial("TopView");}
<div class="right_col" role="main">
@RenderBody()
</div>
@{Html.RenderPartial("FooterScripts");}
</body>
</html>
这是由于我的操作方法如下所示。
[AttributeRouting.Web.Mvc.Route("All-Categories")]
public async Task<ActionResult> Categories()
{
var list = await _category.CategoryList(null);
return View(list.Value);
}
这里的问题是...结果来使用异步,所以我甚至不能来电局部视图的操作方法在布局如下图所示。
@{
Html.RenderAction("ActionName");
}
因为我必须在操作方法中写一些登录。我知道在VS 2013中我们不能称它为:Html.RenderAction("ActionName")
,因为框架决不允许这样做。
问题:有没有什么办法调用部分视图,除了在DOM上使用 JQuery?
答
从客户端角度看,Controller
中的异步操作等于非异步操作。
使用async标记操作只允许在请求数据库时将线程释放回ThreadPool。
如果你想异步填充你的零件,那么你将需要使用AJAX。 有一些有趣的方法,如果你有兴趣,如this。