我想在MVC 4.0 View页面中显示一个包含以下代码的表:
<table >
<thead>
<tr>
<th>Student Name</th>
<th>Gaurdian</th>
<th>Associate Teacher</th>
</tr>
</thead>
@foreach(var stud in ViewBag.students)
{
<tr>
<td>@stud.Name</td>
</tr>
}
</table>
Run Code Online (Sandbox Code Playgroud)
这很好.但是,Guardian信息和关联教师信息被放在ViewBag.guardians和Viewbag.assoc等不同的ViewBag对象中.我应该如何循环它们以在必要的表格单元格中显示它们?
循环内的循环就像
@foreach(var student in ViewBag.students)
{
foreach(var gaurdian in ViewBag.guardians)
{
<tr>
<td>@student.Name</td>}
<td>@guardian.Name</td>
</tr>
}
}
Run Code Online (Sandbox Code Playgroud)
听起来很荒谬.请提供适当的解决方案.学生类包含监护人字段,但它有自己的另一个类,如下所示:
public class Student
{
public string Name {get;set;}
public string RollNo {get;set;}
public virtual Guardian Guardian {get;set;}
public IList<Guardian> 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;}
}
Run Code Online (Sandbox Code Playgroud)
jrb*_*jrb 18
你做错了,你应该派一个不同学生作为意见模型.
然后你可以使用student.Name,student.Guardian.Name
在你的例子中,你放弃了学生和监护人之间的关系
如果你保持关系,你可以做
@foreach(var student in ViewBag.students)
{
<tr>
<td>@student.Name</td>
<td>@student.Guardian.Name</td>
</tr>
}
Run Code Online (Sandbox Code Playgroud)
如果你不关心关系,你可以使用for循环
@for(int i=0; i < ViewBag.Students.Count(); i++)
{
<tr>
<td>@ViewBag.Students[i].Name</td>
<td>@ViewBag.Guardians[i].Name</td>
</tr>
}
Run Code Online (Sandbox Code Playgroud)
当然只要学生有监护人或者你会得到stackoverflow ex :)
| 归档时间: |
|
| 查看次数: |
64783 次 |
| 最近记录: |