Как я могу фильтровать данные в представлении Razor с выпадающим - PullRequest
0 голосов
/ 26 июня 2019

Здравствуйте, я новичок в MVC, и я пытаюсь выполнить фильтрацию для моей индексной страницы, я хочу иметь возможность фильтровать статус окончания.

Так что, когда я войду в индекс, я увижу все статусы и хочу отфильтровать, например, только человека с оконченным статусом или статусом пройден / не пройден

Заранее спасибо!

Главная страница

Контроллер:

        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 голосов
/ 26 июня 2019

Вы можете использовать linq в представлении для фильтрации данных

В представлении

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

Этот подход получает все данные из базы данныхи затем выполняет фильтрацию

. Этот подход будет работать, однако лучше будет отправить Selected GraduationStatus в контроллер в качестве параметра, а затем выполнить фильтрацию непосредственно по переменной db

* 1013.* в контроллере
public IActionResult GeStudents(GraduationStatus selectedGraduationStatus) 
{
    var graduates = db.Graduated_Students.Where(t=> t.GraduationStatus == selectedGraduationStatus);
    return View(graduates.ToList());
}

Таким образом, вы получаете не всех студентов из базы данных, а только тех, которые соответствуют фильтру

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...