如何在ASP.NET Core中为服务器端分页编写代码

问题描述 投票:0回答:2

我想实现服务器端分页,以加载一些我想加载到浏览器中的数据。在MVC中,PageList可以很好地在客户端运行,但是我不知道如何在Asp.net Core Server端进行操作。

这是我的班级,我要显示所有比例,甚至照片(图像)

public class HouseDTO
    {
        [Key]
        public int HouseId { get; set; }
        public Nullable<decimal> Price { get; set; }
        public string LiveArea { get; set; }
        public string RoomAmount { get; set; }
        public string HouseType { get; set; }
        public string ImageName { get; set; }
    } 

然后是我的复活

public interface IHouseRepository
{

  public IEnumerable<HouseDTO> GetAllHouses()

}

 public class HouseRepository : IHouseRepository
 {

    private ApplicationDbContext db;

    public HouseRepository(ApplicationDbContext db)
    {
            this.db = db;
    }

    public IEnumerable<HouseDTO> GetAllHouses()
    {
            return db.Houses;
    }
}

这是我的控制器

public class AdvController : Controller
{

   private IHouseRepository db;
   private IHostingEnvironment hostingEnvirnment;

   public AdvController(IHouseRepository db, IHostingEnvironment hostingEnvirnment)
   {
      this.db = db;
      this.hostingEnvirnment = hostingEnvirnment;

   }

   public IActionResult Index()
   {
     var model = db.GetAllHouses();  // How can I do this to Server side pagination?
     return View(model);
   } 
}

那么如何为此操作创建服务器端分页?

public IActionResult Index()
{
   var model = db.GetAllHouses();   
   return View(model);
}

如果您能帮助我,我将不胜感激。

我想实现服务器端分页,以加载一些我想加载到浏览器中的数据。在MVC中,PageList可以很好地在客户端工作,但是我不知道如何在Asp.net Core中做...

c# asp.net-core pagination server-side
2个回答
2
投票

您可以使用Skip()和Take()。制作一个存储库方法,该方法将采用当前位置(跳过)并将参数指定为Take。类似于:


0
投票

Take()Skip()超出db.Houses的结果是要走的路。

© www.soinside.com 2019 - 2024. All rights reserved.