我在使用Sportstore练习显示页面链接时出现问题,这部分练习从第185页开始。
当我拥有时,默认情况下数据库中有9条记录,它只显示2页的按钮(每页有4项),然后我再添加5条记录,现在显示3页,其余2项隐藏在第4页,但没有按钮。
这是列表视图中的行
obj.Highlight
这是PagingInfo的一部分,它可以计算总页数
@Html.PageLinks(Model.PagingInfo, x => Url.Action("List", new { page = x, category = Model.CurrentCategory }))
如果我正确的话,当我在数据库中有9条记录时,它应该是总项目9除以4(每页项目数),结果为2.something并且应该是3页,但我只得到两个。
在ViewResult的产品控制器中,我有以下部分来自PagingInfo
public int TotalPages { get { return (int)Math.Ceiling((decimal) TotalItems/ItemsPerPage); }}
抱歉,我的HTML Helper for PageLinks
的编辑时间较晚public ViewResult List(string category, int page = 1)
{
ProductsListViewModel model = new ProductsListViewModel
{
Products = repository.Products.Where(p => category == null || p.Category == category).OrderBy(p => p.ProductID).Skip((page - 1) * PageSize).Take(PageSize),
PagingInfo =
new PagingInfo
{
CurrentPage = page,
ItemsPerPage = PageSize,
TotalItems = category == null ? repository.Products.Count() : repository.Products.Where(e => e.Category == category).Count()
},
CurrentCategory = category
};
return View(model);
}