在剃刀中显示ViewModel数据列表

时间:2018-05-22 08:14:39

标签: c# asp.net razor

我有一个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)时无法访问我想要的数据。

1 个答案:

答案 0 :(得分:3)

尝试@foreach (var item in Model.FirstModel)循环播放 然后@Html.DisplayFor(item => item.Name)

您需要这样做,因为您需要迭代每个模型列表,而不是迭代BigViewModel的单个实例。