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

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);
        }
mingkaifeng22 回答:页面显示数据库中的所有内容

SkipTake返回一个新的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,然后在枚举它时将返回预期的实体。

,

谢谢大家!我为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-应用程序正常运行。 非常感谢!

本文链接:https://www.f2er.com/3128512.html

大家都在问