如何在MVC 4.0 View Pages中打印它

时间:2012-11-26 15:51:19

标签: c# asp.net-mvc-4

我有一个班级学生:

       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循环中。求你建议我这样做...... !!

1 个答案:

答案 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。