Пожалуйста, не отмечайте это как дубликат, потому что я уже проверил это, но ни один из них не помог мне.
Последовательность не содержит элементов?
Использование 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 для индексации страницы.)
Единственное, что идет не так, это то, что когда я нажимаю на номер страницы, чтобы перейти к другим результатам, это дает мне «Последовательность не содержитэлементы».Пожалуйста, если кто-то может мне помочь, это было бы очень признательно.