得到“序列不包含任何元素?”使用分页列表时

时间:2019-02-25 10:50:39

标签: c# asp.net-mvc razor pagination pagedlist

请不要将其标记为重复项,因为我已经检查了它们,但是它们都没有帮助我。

Sequence contains no elements?

Using a PagedList with a ViewModel ASP.Net MVC

我试图在我的asp.net mvc项目中使用pagedList,但它给我“序列不包含任何元素?”当我单击页码时。 首先,我有2个餐桌产品和图片。

产品包含:产品ID-产品名称-产品描述。

图像包含:ImageID-ImagePath-ProductFK

我有一个包含这两个表的viewModel

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。)

唯一出错的是,当我单击页码导航到其他结果时,它给我“序列不包含任何元素”。 请有人帮助我,将不胜感激。

0 个答案:

没有答案