如何在MVC 4.0中的View页面上遍历两个viewbag项目

我想在MVC 4.0 View页面中显示一个包含以下代码的表:

 @foreach(var stud in ViewBag.students) {  } 
Student Name Gaurdian Associate Teacher
@stud.Name

这很好。但是,Guardian信息和关联教师信息被放在ViewBag.guardians和Viewbag.assoc等不同的ViewBag对象中。 我应该如何循环它们以在必要的表格单元格中显示它们?

循环内的循环就像

  @foreach(var student in ViewBag.students) { foreach(var gaurdian in ViewBag.guardians) {  @student.Name} @guardian.Name  } } 

听起来很荒谬。 请提供适当的解决方案。 学生类包含监护人字段,但它有自己的另一个类,如下所示:

  public class Student { public string Name {get;set;} public string RollNo {get;set;} public virtual Guardian Guardian {get;set;} public IList GuardianName {get;set;} } public class Guardian { public string Name{get;set;} public string MobNumber{get;set;} } public class Associate { public string AID{get;set;} public virtual Student Student{get;set;} public string RollNo {get;set;} } 

你做错了,你应该发送一个不同学生作为意见模型。

那么你可以使用student.Name,student.Guardian.Name

在你的例子中,你放弃了学生和监护人之间的关系

如果你保持关系,你可以做

  @foreach(var student in ViewBag.students) {  @student.Name @student.Guardian.Name  } 

如果你不关心关系,你可以使用for循环

 @for(int i=0; i < ViewBag.Students.Count(); i++) {  @ViewBag.Students[i].Name @ViewBag.Guardians[i].Name  } 

当然这只有学生有监护人或者你会得到stackoverflow ex :)才有效

看看这个ViewData和ViewBag有什么区别?

这意味着你可以循环浏览ViewBag项目,如下所示:

  @foreach (var viewBagItem in ViewContext.ViewData) { // your code }