我有一个ViewModel列表,其中还包含其他模型的列表。我正在研究一个预制的数据库,我无法改变结构。我在剃刀中显示ViewModel数据时遇到困难。
MyBigViewModel定义
public class MyBigViewModel
{
public List<FirstModel> FirstModel { get; set; }
public List<SecondModel> SecondModel { get; set; }
public List<ThirdModel> ThirdModel { get; set; }
public List<FourthModel> FourthModel { get; set; }
public List<FifthModel> FifthModel { get; set; }
}
我有一些商业逻辑,基于查询(基于单个模型),我将尝试填充视图模型。
List<MyBigViewModel> BigViewModel = new List<MyBigViewModel>();
foreach (var SingleModel in FirstModelList)
{
SecondModelResult = db.somequery;
ThirdModelResult = db.somequery;
FourthModelResult = db.somequery;
FifthModelResult = db.somequery;
MyBigViewModel TempViewModel = new MyBigViewModel{
FirstModel = FirstModelResult;
SecondModel = SecondModelResult;
ThirdModel = ThirdModelResult;
FourthModel = FourthModelResult;
FifthModel = FifthModelResult;
}
BigViewModel.Add(TempViewModel);
}
BigViewModel
中的结果集完全符合我希望它的结构,但是我无法使用剃须刀显示每个数据。当我尝试使用@foreach (var item in Model)
@Html.DisplayFor(modelItem => item.FirstModel.Name)
时无法访问我想要的数据。
答案 0 :(得分:3)
尝试@foreach (var item in Model.FirstModel)
循环播放
然后@Html.DisplayFor(item => item.Name)
您需要这样做,因为您需要迭代每个模型列表,而不是迭代BigViewModel的单个实例。