页面显示数据库中的所有内容

Page displays everything that is in the database

PageSize 字段表示信息应显示在一页上,大约八个对象,但该页显示数据库中的所有内容。

        private readonly IObjectRepository _objectRepository;
        private readonly IWebHostEnvironment hostingEnvironment;
        public int PageSize = 8;

        public HomeController(IObjectRepository objectRepository, IWebHostEnvironment hostingEnvironment)
        {
            _objectRepository = objectRepository;
            this.hostingEnvironment = hostingEnvironment;
        }

        public ViewResult Index(int objectPage)
        {
            var model = _objectRepository.GetAllObjects();
            model.OrderBy(o => o.Id)
                 .Skip((objectPage - 1) * PageSize)
                 .Take(PageSize);
            return View(model);
        }

Skip and Take return 结果是一个新的 IEnumerable,而不是修改现有的 IEnumerable。所以,你应该替换这一行:

model.OrderBy(o => o.Id)
             .Skip((objectPage - 1) * PageSize)
             .Take(PageSize);

与:

model=model.OrderBy(o => o.Id)
             .Skip((objectPage - 1) * PageSize)
             .Take(PageSize);

这样,您将新的查询值分配给 baseQuery,然后在枚举它时,它将 return 预期的实体。

谢谢大家!我用 Methanit 找到了另一个解决方案,非常感谢他。

1 - 更改了我的 PageViewModel

public class PageViewModel
    {
        public int PageNumber { get; set; }
        public int TotalPages { get; set; }


    public PageViewModel(int count, int pageNumber, int pageSize)
    {
        PageNumber = pageNumber;
        TotalPages = (int)Math.Ceiling(count / (double)pageSize);
    }

    public bool HasPreviousPage
    {
        get
        {
            return (PageNumber > 1);
        }
    }

    public bool HasNextPage
    {
        get
        {
            return (PageNumber < TotalPages);
        }
    }
}

2 - 更改了控制器中的方法索引:

public IActionResult Index(int page = 1)
        {
            int pageSize = 6;
            var model = _objectRepository.GetAllObjects();
            var count = model.Count();
            var items = model.Skip((page - 1) * pageSize).Take(pageSize).ToList();
            PageViewModel pageViewModel = new PageViewModel(count, page, pageSize);
            IndexViewModel viewModel = new IndexViewModel
            {
                PageViewModel = pageViewModel,
                Objects = items
            };
            return View(viewModel);
        }

3 - 应用程序运行正常。 非常感谢!