【发布时间】:2020-06-11 07:41:26
【问题描述】:
伙计们:
我最近正在使用 dotnet-core-mvc 构建一个网站。 我写了一个“pagedList”类,它包括一个“分页”方法。 它现在可以在我的控制器中工作,但我想解耦这个类 使用我的控制器,我应该怎么做才能使我的“pagedList”类可以 与我的控制器解耦?
将我的“pagedList”类注册到 /Startup.cs/ConfigureServices 是一种好方法吗? THX!
这是我的代码:
/Services/PagedList.cs:
public class PagedList<T>: List<T>
{
public int TotalPages{get;private set;}
public bool HasNextPage{get; private set;}
public bool HasPrevPage{get; private set;}
public int PageIndex{get; private set;}
public PagedList()
{
}
public async Task<IQueryable<T>> Paging(IQueryable<T> collection, int pageIndex, int pageSize)
{
int count = await collection.CountAsync();
TotalPages = (int)Math.Ceiling(count/(double)pageSize);
if (pageIndex <= 0) { pageIndex = 1;}
if (pageIndex > TotalPages) { pageIndex = TotalPages; }
PageIndex = pageIndex;
HasNextPage = (pageIndex < TotalPages) ? true : false;
HasPrevPage = (pageIndex > 1) ? true : false;
collection = collection.Skip(( pageIndex - 1 ) * pageSize).Take(pageSize);
return collection;
}
}
}
/Controllers/XXController.cs:
public async Task<IActionResult> Index()
{
...
PagedList<XX> pageList = new PagedList<XX>();
data= await pageList.Paging(data, pageIndex, pageSize);
...
return View(data);
}
【问题讨论】:
标签: asp.net-core model-view-controller