我已经定义了静态类来启用分页:
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);
}
}
我希望在我的 Controller 中执行以下操作:
var pagedDataCourses = products.OrderBy(p => p.productName).PageData(currentPage, pageSize);
所以我可以把那个静态类/方法放在哪里,这样我就可以在所有 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 文件顶部的“使用”
关于asp.net-mvc - 如何在mvc中编写分页的扩展方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8970467/