C# 分页类DLL-Don';不要重复你自己
我有一个简单的寻呼系统。我在任何地方都使用它,只是做了一些小改动。我想创建一个类或dll文件,并更广泛地使用它。我不想重复我的话 我的控制器:C# 分页类DLL-Don';不要重复你自己,c#,asp.net,class,dll,dry,C#,Asp.net,Class,Dll,Dry,我有一个简单的寻呼系统。我在任何地方都使用它,只是做了一些小改动。我想创建一个类或dll文件,并更广泛地使用它。我不想重复我的话 我的控制器: public ActionResult Index(int sayfa = 1) { int totalPage = Posts.Count(); int postPerPage = 10; int pageCount = totalPage / postPerPage; if ((totalPage % postPerP
public ActionResult Index(int sayfa = 1)
{
int totalPage = Posts.Count();
int postPerPage = 10;
int pageCount = totalPage / postPerPage;
if ((totalPage % postPerPage) > 0)
{
pageCount++;
}
ViewBag.PageCurrent = sayfa;
ViewBag.PageCount = pageCount;
Posts = (IOrderedQueryable<Post>)Posts.Skip(postPerPage * (sayfa - 1)).Take(postPerPage);
return View(Posts.ToList());
}
我想要的用法:
IN CONTROLLER:
Posts = Posts.ToMyCustomPagerClass()
IN VIEW:
@Html.Pagination()
我该怎么做?
现在我创建了一个类,但是ViewBags是有问题的。错误:名称“ViewBag”在当前上下文中不存在
public static class ePager<T>
{
public static IOrderedQueryable<T> ePagedList(IOrderedQueryable<T> sinif, int page, int itemPerPage = 10)
{
int totalPage = sinif.Count();
int pageCount = totalPage / itemPerPage;
if ((totalPage % itemPerPage) > 0)
{
pageCount++;
}
ViewBag.PageCurrent = page;
ViewBag.PageCount = pageCount;
sinif = (IOrderedQueryable<T>)sinif.Skip(itemPerPage * (page - 1)).Take(itemPerPage);
return sinif;
}
}
公共静态类ePage
{
公共静态IOrderedQueryable ePagedList(IOrderedQueryable sinif,int page,int itemPerPage=10)
{
int totalPage=sinif.Count();
int pageCount=总页面/项目每页;
如果((总页面%itemPerPage)>0)
{
pageCount++;
}
ViewBag.PageCurrent=页面;
ViewBag.PageCount=页面计数;
sinif=(IOrderedQueryable)sinif.Skip(itemPerPage*(page-1)).Take(itemPerPage);
返回sinif;
}
}
创建一个基类,该基类包含分页所需的信息,并使视图模型从中继承。在ViewBag
中传递分页信息一点也不枯燥。我想使此代码可重用。每次我需要“复制粘贴和编辑”时,我想像这样使用此代码。在CONTROLLER Posts=Posts.ToMyCustomPagerClass()和视图@Html.Pagination()中。类似的东西我不使用视图模型。我的知识不太好。正因为如此,我想使项目尽可能简单。您正在传递Post
对象列表。您要做的是创建一个类似于PagedViewModel
的类,其中T是您的Post
。具有项的属性,这些项是T
的列表(您的Post
)。在控制器中,获取帖子列表,创建PagedViewModel的新实例,并将项目设置为帖子。您可以将此视图模型重新用于其他页面,并封装页面详细信息。除了可视包,一切都好。我现在已经知道如何将类中的数据发送到视图
@Url.Action("Index", "Post" .... (This is also must-have)
IN CONTROLLER:
Posts = Posts.ToMyCustomPagerClass()
IN VIEW:
@Html.Pagination()
public static class ePager<T>
{
public static IOrderedQueryable<T> ePagedList(IOrderedQueryable<T> sinif, int page, int itemPerPage = 10)
{
int totalPage = sinif.Count();
int pageCount = totalPage / itemPerPage;
if ((totalPage % itemPerPage) > 0)
{
pageCount++;
}
ViewBag.PageCurrent = page;
ViewBag.PageCount = pageCount;
sinif = (IOrderedQueryable<T>)sinif.Skip(itemPerPage * (page - 1)).Take(itemPerPage);
return sinif;
}
}