我有一个班级学生:
public class Student
{
public int StudentId{get;set;}
public string StudentName{get;set;}
public int Age{get;set;}
public List<Course> Courses{get;set;}
public List<string> MobileNumbers{get;set;}
}
课程课程是:
public class Course
{
public int CourseId {get;set;}
public string CourseName {get;set;}
public List<Staff> Staff {get;set;}
}
Staff类具有以下结构:
public class Staff
{
public int StaffId {get;set;}
public string StaffName {get;set;}
}
我已将数据放入ViewBag中,但我无法弄清楚如何使用foreach语句在以下视图中打印所有这些记录。 视图:
<table class="tableStyle" width="100%" border="0" cellspacing="0" cellpadding="0">
<thead>
<tr>
<th>Student Name</th>
<th>Courses</th>
<th>Staffs</th>
<th>Mobile Numbers</th>
</tr>
</thead>
@foreach (Student stud in ViewBag.students)
{
<tr>
<td>@stud.StudentName</td>
foreach(Course course in ViewBag.courses)
{
<td>@course.CourseName</td>
}
foreach(Staff staff in ViewBag.staff)
{
<td>@staff.StaffName</td>
}
</tr>
}
</table>
但是,这会打印所有学生为单个学生所采取的课程,因为他们处于第一个foreach循环中。求你建议我这样做...... !!
答案 0 :(得分:1)
你不需要你的其他视包。您可以在学生对象中引用您的课程和工作人员。
<table class="tableStyle" width="100%" border="0" cellspacing="0" cellpadding="0">
<thead>
<tr>
<th>Student Name</th>
<th>Courses - Staffs</th>
<th>Mobile Numbers</th>
</tr>
</thead>
@foreach (Student stud in Viewbag.students)
{
<tr>
<td>@stud.StudentName</td>
<td>
foreach(Course course in stud.courses)
{
foreach(Staff staff in course.staff)
{
@course.CourseName - @staff.StaffName </br>
}
}
</td>
</tr>
}
</table>
您可能还想考虑通过添加以下内容使IEnumerable成为您网页的模型:
@model IEnumerable<myproject.Models.Student>
到页面顶部。然后你不需要使用Viewbag。