更新
我有一个加载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
目标是从控制器获取部分视图的数据
答案 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")