我正在使用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准备好了吗?
答案 0 :(得分:0)
Controller
中的异步操作等于非异步。
使用async标记操作只允许在请求DB时将线程释放回ThreadPool。
如果要异步填充零件,则需要使用AJAX。 如果您有兴趣,有一些有趣的方法,如this。