Получение "Последовательность не содержит элементов?"при использовании постраничного списка - PullRequest
0 голосов
/ 25 февраля 2019

Пожалуйста, не отмечайте это как дубликат, потому что я уже проверил это, но ни один из них не помог мне.

Последовательность не содержит элементов?

Использование PagedList с ViewModel ASP.Net MVC

Я пытаюсь использовать pagedList в своем проекте asv.net mvc, но он дает мне «Последовательность не содержит элементов?»когда я нажимаю на номера страниц.Сначала у меня есть 2 таблицы продуктов и изображений.

Содержит продукт: ProductID - ProductName - ProductDescription.

Изображения содержат: ImageID - ImagePath - ProductFK

У меня есть viewModel, которая содержитэти 2 таблицы

public class myViewModel
{
    public IPagedList<Products> myProducts { get; set; }
    public IPagedList<Images> myImages{ get; set; }
}

В моем окне поиска у меня есть это.

@model PagedList.IPagedList<myViewModel>
@using PagedList;
@using PagedList.Mvc;

 <div>
 <input type="text"  name="search">
 <button type="submit">Search</button>
 </div>
 @foreach (Products item in Model.First().myProducts)
   {
    @item.ProductName
    @item.ProductDescription
    }
<div>

// Page Index

 @(Model.PageCount < Model.PageNumber ? 0 : Model.PageNumber) of @Model.PageCount


 @Html.PagedListPager(Model.First().myProducts, page => Url.Action("Search", new { page, search = Request.QueryString["search"] }), PagedListRenderOptions.PageNumbersOnly)

И вот мой метод поиска в моем домашнем контроллере

public ActionResult Search(string search, int? page)
    {
        int pageSize = 3;
        int pageNumber = (page ?? 1);
        var Items= new[] {
       new myViewModel { myProducts = DB.Products.Where(a=>a.ProductName.Contains(search)).OrderByDescending(a=>a.ProductID).ToPagedList(pageNumber,pageSize),
            }
 };

return View(Items.ToPagedList(pageNumber, pageSize));
}

Поиск сработалотлично, и даже индекс страниц дает мне количество страниц в зависимости от моих результатов поиска (это означает, что если у меня есть продукт с именем = "abc" и у меня в таблице 9 продуктов abc, если я показываю 3 элементатолько на каждой странице я получаю 1,2,3 для индексации страницы.)

Единственное, что идет не так, это то, что когда я нажимаю на номер страницы, чтобы перейти к другим результатам, это дает мне «Последовательность не содержитэлементы».Пожалуйста, если кто-то может мне помочь, это было бы очень признательно.

...