Foreach Razor里面的Foreach

use*_*794 6 c# linq entity-framework asp.net-mvc-3

我正在尝试编写一个foreach循环,它将找到每个不同的类别类型,然后列出具有该类别分配的每个标题.

例如:

@model IEnumerable<CMESurvey.Models.SurveyProgramModel>

@{
    ViewBag.Title = "Home";
}

@foreach (var item in Model) {
    <h2>@Html.DisplayFor(modelItem => item.ProgramType.ProgramType)</h2>
    foreach (var listing in Model)
    {
        <ul>
            <li>@Html.DisplayFor(modelItem => listing.ProgramTitle)</li>
        </ul>
    }
}
Run Code Online (Sandbox Code Playgroud)

调查回复模型:

  public class SurveyProgramModel
{

    [Key]
    public int ProgramId { get; set; }

    public int ProgramYear { get; set; }

    public int ProgramStatusId { get; set; }

    public string ProgramTitle { get; set; }



public virtual SurveyProgramModel SurveyProgramModel { get; set; }

public virtual PersonModel PersonModel { get; set; }
Run Code Online (Sandbox Code Playgroud)

}

我遇到了两个问题.

1.)我需要它只显示每个类别一次,而不是列出每个项目实例的类别.

2.)它显示所有ProgramTitle,而不仅仅是该循环的ProgramTitle.

不确定我应该使用的语法是什么.

Kun*_*ani 3

如果我理解正确的话应该是这样的

@foreach (var item in Model) { 
  <h2>@Html.DisplayFor(modelItem => item.ProgramType.ProgramType)</h2> 
  foreach (var listing in item.SurveyResponseModels) 
  { 
     <ul> 
       <li>@Html.DisplayFor(modelItem => listing.ProgramTitle)</li> 
     </ul> 
  } 
} 
Run Code Online (Sandbox Code Playgroud)