MVC foreach 多重嵌套

bychgh 2011-01-17 04:33:49
mvc foreach 多重嵌套查询,两张表,有对应字段 grade_id 和student_gradeId

model: Grade 和 Student,以及两者的集合类

Garade_Student

public class Grade_Student
{
public IList<Grade> gradeList { get; set; }
public IList<Students> studentList { get; set; }
public Grade_Student(IList<Grade> gradelists, IList<Students> studentlists)
{
this.gradeList = gradelists;
this.studentList = studentlists;
}

}



controller 中代码


public ActionResult Index()
{
var s_list = reposit.getStudentList(); //全部
var g_list=reposit.getGrade();
//var s_list_b = reposit.getStudentByGID(1); // 根据年级ID查询
return View(new Grade_Student(g_list, s_list));
}



根据 student_gradeId,查询
view 中查询结果如

五年级
aa
bb
四年级
cc
dd
……

代码该怎么写
...全文
428 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
阿非 2011-01-18
  • 打赏
  • 举报
回复
Razor engine


@foreach (var g in Model.GradeList)
{
<div>
@g.Title
@foreach (var s in Model.StudentList)
{
<span>
@if (s.Grade_No == g.No)
{
@s.Name
} </span>
}
</div>
}


M

public class Grade
{
public int No { get; set; }
public string Title { get; set; }
}

public class Student
{
public int ID { get; set; }
public string Name { get; set; }
public int Grade_No { get; set; }
}

public class ClassPackaging
{
public IList<Grade> GradeList { get; set; }
public IList<Student> StudentList { get; set; }

public ClassPackaging()
{
GradeList = new List<Grade>()
{
new Grade() {No = 1, Title = "一年级"},
new Grade() {No = 2, Title = "二年级"},
new Grade() {No = 3, Title = "三年级"}
};

StudentList = new List<Student>()
{
new Student(){Grade_No=1,ID=1,Name="小明"},
new Student(){Grade_No=1,ID=2,Name="小王"},
new Student(){Grade_No=1,ID=3,Name="小李"},
new Student(){Grade_No=2,ID=4,Name="小刘"},
new Student(){Grade_No=2,ID=5,Name="小张"},
new Student(){Grade_No=3,ID=6,Name="小冯"},
new Student(){Grade_No=3,ID=7,Name="小邓"}

};

}

public ClassPackaging(IList<Grade> gradelist, IList<Student> studentlist)
{
GradeList = gradelist;
StudentList = studentlist;
}


}

C

[AcceptVerbs(HttpVerbs.Get)]
//[UrlAuthorize]
public ActionResult ActionName()
{
return View(new ClassPackaging());
}
zhenze0 2011-01-18
  • 打赏
  • 举报
回复
使用强类型的ViewModel
index.aspx 首行:

<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<xxx.Grade_Student>" %>


<% foreach (var grade in Model.gradeList) {%>
<%=garde.Name%><br/>
<%foreach(var student in Model.studentList.Where(a=>a.student_gradeId==grade.grade_id ) ){%>
<%=student.Name%>
<br/>


<%}
}%>



bychgh 2011-01-17
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 yhtapmys 的回复:]
引用 2 楼 bychgh 的回复:
引用 1 楼 wxr0323 的回复:
VIEW中 先把返回的数据
拆分成两个LIST,
然后就用这种


HTML code
<% IList<int> Arrylist = (ViewData["NewAgeList"] as IEnumerable<int>).ToList<int>(); %>
<%= Html.Display("<b……
[/Quote]

我的意思是怎么去关联 这Grade ID
yhtapmys 2011-01-17
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 bychgh 的回复:]
引用 1 楼 wxr0323 的回复:
VIEW中 先把返回的数据
拆分成两个LIST,
然后就用这种


HTML code
<% IList<int> Arrylist = (ViewData["NewAgeList"] as IEnumerable<int>).ToList<int>(); %>
<%= Html.Display("<br/>") %>
<% for (in……
[/Quote]

根据Students 类里的Grade ID
别没关联哈
bychgh 2011-01-17
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 wxr0323 的回复:]
VIEW中 先把返回的数据
拆分成两个LIST,
然后就用这种


HTML code
<% IList<int> Arrylist = (ViewData["NewAgeList"] as IEnumerable<int>).ToList<int>(); %>
<%= Html.Display("<br/>") %>
<% for (int i =……
[/Quote]

怎样把第一个嵌套的 值传 给里面的foreach 来查询?
子夜__ 2011-01-17
  • 打赏
  • 举报
回复
VIEW中 先把返回的数据
拆分成两个LIST,
然后就用这种

<% IList<int> Arrylist = (ViewData["NewAgeList"] as IEnumerable<int>).ToList<int>(); %>
<%= Html.Display("<br/>") %>
<% for (int i = 0; i < Arrylist.Count; i++) %>
<% { %>
<%= Html.Label(Arrylist[i].ToString()) %>
<% } %>
<br />

里面在嵌套一个
<% IList<int> Arrylist = (ViewData["NewAgeList"] as IEnumerable<int>).ToList<int>(); %>
<%= Html.Display("<br/>") %>
<% for (int i = 0; i < Arrylist.Count; i++) %>
<% { %>
<%= Html.Label(Arrylist[i].ToString()) %>
<% } %>
<br />

类似这样

参考

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧