我有要显示的学校列表。在每个学校的下拉列表中,我只想显示学生表中fk等于出发表中pk的学生。出发表有fk school_schoolId。有很多学校。例如在学生表中-studentId = 1,depart_departId = 4,school_schoolId = 4。
     在学校表中-schoolId = 4
因此,学生1将列在学校4下。

@foreach (var item in Model.School)
{
   @:<tr style="background-color:grey;-moz-border-radius: 15px;border-radius: 15px;">
      <td class="accordion" style="width: 50%;padding-left: 10px;text-align: left;">
         <a href="#">@item.Name</a>
         <div style="font-size:10px;">
            @foreach (var student in Model.students)
            {
               <div style="background-color:grey;width:100%;padding-top:10px; margin-bottom:10px">
                  <span style="margin-left:8%; text-align: center">@student.Name</span>
               </div>
            }
         </div>
      </td>
   @:</tr>
}

最佳答案

根据代码,似乎Model不能正确表示数据。

在第一个循环中,您正在循环遍历所有学校。很好

(为了清楚起见,我将变量的名称更改为school以更好地表示它的作用。我也将School属性的名称更改为复数Schools以表示它具有一个一堆。)

@foreach (var school in Model.Schools)


但是在第二个循环中(嵌套在第一个循环中),您将循环浏览所有学生,而不仅仅是当前学校的学生。

更好的方法是在Students模型类中添加School属性,然后像这样循环遍历当前学校的学生:

@foreach (var student in school.Students)


Controller中(或在任何地方构建模型)构建模型时,请确保将每所学校的学生添加到正确的Students集合中。如果正确配置,Entity Framework可以为您建立这样的层次结构。

关于c# - 显示表中属于学校的学生,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22018785/

10-09 07:07