Pro Asp.net MVC 5 Sportstore

时间:2015-06-09 08:22:51

标签: asp.net asp.net-mvc

我在使用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);
    }

0 个答案:

没有答案