如何在带有下拉菜单的Razor视图中过滤数据

时间:2019-06-26 20:28:27

标签: c# html razor model-view-controller

你好,我是MVC的新手,我正在尝试为索引页面进行过滤,我希望能够过滤毕业状态。

因此,当我进入索引时,我将看到每个状态,并且只想过滤例如具有状态为“已通过”或“失败”的人

提前谢谢!

Index Page

控制器:

        var graduates = db.Graduated_Students;
        return View(graduates.ToList());

查看:

    <div class="content-body">
             <div class="row">
                 <form action="#" method="post">
              <div class="col-xs-12 col-sm-9 col-md-12">

                <table class="table">
                    <tr>
                        <th>
                            @Resource.FirstName
                        </th>
                        <th>
                            @Resource.LastName
                        </th>
                        <th>
                            @Resource.CohortNumber
                        </th>
                        <th>
                            Placements
                        </th>
                        <th>
                            @Resource.GraduationStatus
                        </th>

                    </tr>
                    @foreach (var item in Model)
                    {
                        <tr>
                            <td>
                                @Html.DisplayFor(modelItem => 
                                          item.FirstName)
                            </td>
                            <td>
                                @Html.DisplayFor(modelItem => 
                                             item.LastName)
                            </td>
                            <td>
                                @Html.DisplayFor(modelItem => item.Name)
                            </td>
                            <td>
                                @Html.DisplayFor(modelItem => 
                                            item.PartnerName)
                            </td>
                            <td>
                                @Html.DisplayFor(modelItem => 
                                 item.GraduationStatus)
                            </td>

1 个答案:

答案 0 :(得分:0)

您可以在视图中使用linq来过滤数据

在视图中

createdOn: {
   $gte: new Date("2019-06-15T00:00:00.000Z"),
   $lte: new Date("2019-06-15 23:59:59.000Z")
 }

这种方法从数据库中获取所有数据,然后执行过滤

该方法可行,但是更好的方法是将Selected GraduationStatus作为参数发送给控制器,然后直接对db变量执行过滤

在控制器中

@foreach (var item in Model.Where(t=> t.GraduationStatus == <the graduation status selected in the dropdown> );

这样,您就不会从数据库中获取所有学生,而只会从那些与过滤器匹配的学生中获取