如何在mvc中编写用于分页的扩展方法 [英] how to write extension method for paging in mvc
本文介绍了如何在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屋!
查看全文