【发布时间】:2016-02-28 02:02:51
【问题描述】:
局部视图可以异步渲染吗?
我有一个需要渲染博客文章的局部视图。博文是异步返回的。
在我的_Layout 文件中,我渲染了部分页脚_Footer。在_Footer 我有以下标记:
@Html.Action("FooterLatestBlogPosts", "Common")
所以在我的Common 控制器中,我有以下操作方法:
public async Task<ActionResult> FooterLatestBlogPosts()
{
List<ArticleDTO> articleDTOs = await articleTask.GetAllAsync();
return PartialView(articleDTOs);
}
在我的FooterLatestBlogPosts 部分视图中,我有以下内容:
@model List<MyProject.Application.DTO.ArticleDTO>
@if (Model.Count > 0)
{
<ul class="list-unstyled">
@foreach (var articleDTO in Model)
{
<li>@articleDTO.Title</li>
}
</ul>
}
我收到一个错误:
Error executing child request for handler 'System.Web.Mvc.HttpHandlerUtil+ServerExecuteHttpHandlerAsyncWrapper'
我是否应该只创建一个同步方法来恢复我的数据?
【问题讨论】:
-
或许应该改用@Html.Partial("FooterLatestBlogPosts", "Common")。
-
@buffjape 我也试过了,得到以下错误。请记住,
FooterLatestBlogPosts不是共享下的,而是我的Common控制器中的操作方法和视图:The partial view 'FooterLatestBlogPosts' was not found or no view engine supports the searched locations -
好的,忽略我并查看其他问题,例如stackoverflow.com/questions/24072720/…
-
使用@Html.Partial() 代替@Html.Action() 是不一样的。动作调用控制器/方法。如果您需要应用一些逻辑并重新收集一些数据,则不能调用 Partial()...
标签: c# asp.net asp.net-mvc asp.net-mvc-4 razor