如何在MVC 4.0中的View页面上遍历两个viewbag项目
我想在MVC 4.0 View页面中显示一个包含以下代码的表:
Student Name Gaurdian Associate Teacher @foreach(var stud in ViewBag.students) { @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 }