mam zdefiniować klasę statyczną, aby umożliwić stronicowania:jak napisać metodę rozszerzenia dla stronicowania w MVC
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);
}
}
i chcę w moim kontrolera zrobić tak:
var pagedDataCourses = products.OrderBy(p => p.productName).PageData(currentPage, pageSize);
więc gdzie mogę umieść tę statyczną klasę/metodę, aby uzyskać metodę rozszerzenia dla stronicowania we wszystkich kontrolerach.
'wezwanie OrderBy' ma być tam w dostarczonym zapytania. W przeciwnym razie 'Skip/Take' nie będzie działać dla relacyjnych dostawców LINQ. – Eranga