请不要将其标记为重复项,因为我已经检查了它们,但是它们都没有帮助我。
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。)
唯一出错的是,当我单击页码导航到其他结果时,它给我“序列不包含任何元素”。 请有人帮助我,将不胜感激。