coderom2019 Ответов: 1

Данные не отображаются на странице


Я использую asp.net mvc .

Я создаю таблицу, но когда я запускаю приложение, данные не отображаются в таблице или странице, а сохраняются в базе данных.

это была работа, но когда я добавляю условие Where и (int? идентификатор) . его не показывают

Что я уже пробовал:

Это мой контроллер :

public ActionResult Index(int? id)
    {
       var students = db.Students.Where(c => c.GroupId == id).Include(s => s.Groups).Include(s => s.Schedules).Include(s => s.Teachers).ToList();
       return View(students);
        }


это и есть вид :

<table class="table table-bordered">
            <thead>
                <tr ">
                    <th ">
                        @Html.DisplayNameFor(model => model.Groups.Name)
                    </th>
                    <th >
                        @Html.DisplayNameFor(model => model.Schedules.Period)
                    </th>

                    <th >
                        @Html.DisplayNameFor(model => model.Name)
                    </th>


                    <th></th>
                </tr>
            </thead>


            @foreach (var item in Model)
            {
                <tbody>

                    <tr >
                        <td>
                            @Html.DisplayFor(modelItem => item.Groups.Name)
                        </td>


                        <td>
                            @Html.DisplayFor(modelItem => item.Name)
                        </td>

                    </tr>
                </tbody>

            }

        </table>

F-ES Sitecore

Проверьте, содержит ли "студенты" элементы. Если это не так, то в вашей базе данных нет ничего, что удовлетворяло бы условию "GroupId == id". Либо потому, что данные не существуют, либо потому, что "id" - это не то, что вы ожидаете. В зависимости от того, какой из этих сценариев является истинным, зависит от того, что вы делаете для его решения.

coderom2019

Есть пункт в студенческом

Richard Deeming

Но в разделе "студенты" нет элементов, соответствующих вашему фильтру.

coderom2019

У меня есть 2 таблицы , одна из которых является студентом , а другая-группой, есть ссылка в таблице группы для всей группы, поэтому, когда мы выбираем, например, группу 1, они переходят на страницу студента и показывают только того студента, который находится в группе 1 .

coderom2019

когда я иду по ссылке , данные отображаются, но когда я иду на страницу студента напрямую, данные не отображаются, я надеюсь, что вы понимаете мою проблему

coderom2019

когда я добавляю условие were данные не отображаются

coderom2019

Большое вам спасибо, это работа ^_^

1 Ответов

Рейтинг:
5

Richard Deeming

Когда вы загружаете страницу напрямую, там нет id в URL-адресе, таким образом, вы в конечном итоге ищете студентов без группы.

Вам нужно изменить код, чтобы фильтровать список только в том случае, если указан идентификатор:

public ActionResult Index(int? id)
{
    var students = db.Students.AsQueryable().Include(s => s.Groups).Include(s => s.Schedules).Include(s => s.Teachers);
    if (id != null) students = students.Where(c => c.GroupId == id);
    return View(students.ToList());
}