适用于多种查询结果集的分页(不要存储过程,简单易懂)

 1 //==================这是用的API====================
 2         //分页查询
 3         [Route("api/page")]
 4         [HttpGet]
 5         public PageModel GetPage(int pagesize = 3, int pageindex = 1, string coupontype = "", string couponname = "", int state = 2)
 6         {
 7             if (pageindex < 1)//正确传入页码
 8             {
 9                 pageindex = 1;
10             }
11             //查询出所有数据
12             List<GetrecordModel> list = getbll.GetGetrecords();
13             //判断该集合是否为空
14             if (list != null && list.Count > 0)
15             {
16                 //根据条件进行判断
17                 if (!string.IsNullOrEmpty(coupontype))
18                 {
19                     list = list.Where(s => s.CouponType == coupontype).ToList();
20                 }
21                 if (!string.IsNullOrEmpty(couponname))
22                 {
23                     list = list.Where(s => s.CouponName == couponname).ToList();
24                 }
25                 if (state == 1 || state == 0)
26                 {
27                     list = list.Where(s => s.State == state).ToList();
28                 }
29             }
30             int count = list.Count;//获取查询后的总条数
31             int page;//用来存储页数变量
32             //计算页数
33             if (count % pagesize == 0)
34             {
35                 page = count / pagesize;
36             }
37             else
38             {
39                 page = count / pagesize + 1;
40             }
41             if (pageindex > page)//正确传入页码
42             {
43                 pageindex = page;
44             }
45             //分页显示
46             list = list.Skip((pageindex - 1) * pagesize).Take(pagesize).ToList();
47 
48             //定义一个PageModel存储分页后的数据以及页码、页数、总页数
49             var m = new PageModel();
50             m.list = list;
51             m.PageIndex = pageindex;
52             m.TotalCount = count;
53             m.TotalPage = page;
54             return m;
55         }

 

posted @ 2020-06-09 14:36  卧虎  阅读(222)  评论(0编辑  收藏  举报