我有要显示的学校列表。在每个学校的下拉列表中,我只想显示学生表中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/