根据foreach循环选择学生记录

时间:2017-08-24 07:58:02

标签: c# asp.net-mvc entity-framework linq razor

我正在研究MVC。我需要根据注册部门明智地选择学生名单并显示它们 在不同的divs departmentalize,基于注册的部门。 我的数据库示例模式如下

学生表

ID, Name

报名表

ID
Depart_id
Stdref_id

部门表

ID
DepartName

我正在尝试这样的事情:

public ActionResult NewStudentFeeStatus()
    {
        IEnumerable<tblStdDetail> mdl = null;
        var departments= (from d in db.tblDepartments select d).ToList();
        var query = "";
        List<StdListModel> model = new List<StdListModel>();
        foreach (var item in departments)
        {
            query = (from p in db.tblStdDetails
                     join e in db.tblStdEnrollments on p.ID equals 
                     e.StdReg_ref_id
                     where e.Depart_ref_id == @item.ID
                     select p).ToList();

        }
        return View();
    }

我需要一个方向或示例代码来遵循所需的输出。我不知道接下来该做什么以及如何在视野中管理它。 如果您有任何想法,请帮助我。

1 个答案:

答案 0 :(得分:1)

你可以这样做(我实现了你的问题!!):

数据库表

Model

<强>动作

public ActionResult NewStudentFeeStatus()
        {
            ViewBag.DeparmentList = db.tblDepartments.ToList();
            List<tblStdEnrollment> enrollmentList = (from p in db.tblStdDetails
                                                     join e in db.tblStdEnrollments on p.ID equals e.Stdref_id
                                                     select e).ToList();
            return View(enrollmentList);
        }

查看

@model IEnumerable<tblStdEnrollment>    

<!DOCTYPE html>

<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>NewStudentFeeStatus</title>
</head>
<body>
    <div>
        @foreach (var item in @ViewBag.DeparmentList)
        {            
            <div>@item.DepartName</div>
            foreach (var student in Model.Where(s => s.Depart_ref_id == item.ID).ToList())
            {                
                <div>@student.tblStdDetail.Name</div>
            }
        }
    </div>
</body>
</html>