我使用脚手架来创建索引,详细信息,创建,编辑和删除视图以及控制器。我有两个视图模型(父/子)关系。在我的索引视图中,我想显示团队列表以及有关玩家的一些信息(父/子)。例如,我想在“索引”视图中显示每个球队的球员数量和最后被修改球员的球队。我不知道从哪里开始。 例: (队)红色 - (上次修改时间)2015年1月2日 - (号码玩家)10等等。
Team ViewModel
public class TeamVM
{
public int ID { get; set; }
public string Name { get; set; }
public DateTime? LastActivity { get; set; }
public string NumberPlayers { get; set; }
public IList<PLayerVM> PlayerVM { get; set; }
}
播放器ViewModel
public class PlayerVM
{
public int ID { get; set; }
public int TeamID { get; set; }
public string PlayerInfo { get; set; }
public DateTime? CreateDate { get; set; }
}
其他ViewModel
public class TeamViewModel
{
public List<Team> Teams{ get; set; }
}
控制器
public ActionResult Index()
{
TeamViewModelviewModel = new TeamViewModel();
viewModel.Teams= db.Teams.ToList();
return View(viewModel);
}
答案 0 :(得分:0)
db.Products.ToList()
?我假设你的意思是db.Teams.ToList()
?
您正在使用视图模型,因此您应首先将db数据映射到viewmodels:
public ActionResult Index()
{
var teams = db
.Teams
.Include("Players") // Assuming your Team entity has a collection of Players
.SelectMany(t => new TeamVM {
ID = t.ID,
// etc..
})
.ToList();
return View(new TeamViewModel { Teams = teams });
}
模型:
public class TeamVM
{
public int ID { get; set; }
public string Name { get; set; }
public DateTime? LastActivity { get; set; }
public IList<PLayerVM> PlayerVM { get; set; }
public int NumberPlayers {
get { return PlayerVM.Count(); }
}
}
然后在你看来:
@model MyProject.Models.TeamViewModel
<table>
@foreach(var team in Model.Teams.ToList()) {
<tr>
<td>@team.Name</td> // Name
<td>@team.NumberPlayers</td> // Playercount
<td>@team.PlayerVM.Max(p => p.LastActivity).LastActivity</td> // Last edited
</tr>
}
</table>