MVC 5无法循环列表中的列表?

时间:2018-04-30 00:56:38

标签: c# asp.net-mvc

我有一个XML文档,我正在读取它来创建一个对象列表,在该对象内部是另一个对象列表。我无法弄清楚如何做的是遍历二级列表。

我有一份按年份分组的新闻简报列表。第一个列表是所有年份的列表(例如:2018年,2017年,2016年,2015年),然后在这些年内是另一个实际新闻通讯列表。

我可以在年份列表中循环,但找不到循环播放当年新闻简报列表的方法。

我正在尝试在我的视图中执行类似的操作,但看不到NewsletterList。

@foreach (var year in Model.NewsletterYearList)
{
    foreach (var item in Model.NewsletterYearList.NewsletterList)
    {

    }
}

这是我的ViewModel:

   public class NewsletterViewModel
    {
        public List<NewsletterYear> NewsletterYearList;
    }

    public class NewsletterYear
    { 
        public string Year { get; set; }
        public List<Newsletter> NewsletterList; 
    } 

以下是模型的屏幕截图(为了开发目的,我只用了3个月3年)。 enter image description here

2 个答案:

答案 0 :(得分:2)

根据您的模型,您的代码应为: -

  @foreach (var year in Model.NewsletterYearList)
  {
        // we have a year, and year contains all the newsletters for this year
        // so lets loop through the newsletters....
        foreach (var item in year.NewsletterList)
        {
             // item is the newsletter...
        }
  }

答案 1 :(得分:-1)

根据您的模型构造,您的循环结构应该是这样的

@if(Model != null && Model.NewsletterYearList.Count >0){
   foreach(var year in Model.NewsletterYearList.Count){
      // Already we had reference of single item of
      // Model.NewsletterYearList variable in 'year'
      // So directly use variable 'year' in next iteration
     foreach(var newsletter in year.NewsletterList){
        // Your bussiness logic
     }

   }
}