如何获取部分视图以异步方式从控制器获取数据。感知性能应用程序

时间:2015-03-05 16:05:28

标签: c# asp.net-mvc asynchronous partial-views

更新

我有一个加载html视图的页面如下:

<div class="center-box">
    <div id="ourTeam">
        <div class="arrowLeft"></div>
        <div class="arrowRight"></div>
    </div>
    <div class="containerParent">
        @Html.Partial("Team", Model.TeamMembers == null ? new List<UsersViewModel>() : Model.TeamMembers)
    </div>
</div>

传递到此视图的模型是PagesViewModel,其中包含一堆显示变量和一些对象。它还包括:

public IEnumerable<UsersViewModel> TeamMembers { get; set; }

这是发送到部分视图的内容。部分视图的控制器如下所示:

public ActionResult Team()
{
    getInfo getting = new getInfo();
    IEnumerable<UsersViewModel> getUsers = getting.getDisplayUsers();
    return PartialView("Team", getUsers);
}

但是当我运行它时代码永远不会到达。它只显示我从View发送的空列表。

部分视图文件的名称为:Team.cshtml

目标是从控制器获取部分视图的数据

1 个答案:

答案 0 :(得分:1)

当从视图传递的部分视图模型为null时会发生这种情况,您可以像这样处理它:

<div class="containerParent">
        @Html.Partial("Team", Model.TeamMembers ==null ? new List<UsersViewModel>() : Model.TeamMembers)
    </div>

或确保至少传递的Collection至少是通过ViewModel的构造函数实例化的

如果您尝试通过控制器渲染部分视图,则必须使用@Html.Action()

@Html.Action("actionname","controllername")