如何在mvc中编写用于分页的扩展方法 [英] how to write extension method for paging in mvc

查看:91
本文介绍了如何在mvc中编写用于分页的扩展方法的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已经定义了静态类来启用分页:

i've define static class to enable paging :

public static class Pager
{
   public static IEnumerable<T> PageData<T>(this IEnumerable<T> source, int currentPage, int pageSize)
   {
       var sourceCopy = source.ToList();

       if (sourceCopy.Count() < pageSize)
       {
            return sourceCopy;
       }

       return sourceCopy.Skip((currentPage - 1) * pageSize).Take(pageSize);
   }
}

我想在控制器中执行以下操作:

and i want in my controller to do like :

var pagedDataCourses = products.OrderBy(p => p.productName).PageData(currentPage, pageSize);

因此我可以在其中放置该静态类/方法,以便在所有控制器中获得用于分页的扩展方法.

so where i can put that static class/method so i can get extension method for paging in all controller.

推荐答案

public static IQueryable<T> Page<T>(this IQueryable<T> query, int page, int pageSize)
{
   int skip = Math.Max(pageSize * (page - 1), 0);
   return query.Skip(skip).Take(pageSize);
}

您必须将其放在与使用扩展名相同的名称空间中.还是我们在.cs文件顶部的使用中"

You will have to put it in the same namespace as where you are using the extension. Or us the "using" at the top of your .cs files

这篇关于如何在mvc中编写用于分页的扩展方法的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆