ASP.NET MVC中进行分页的方式有多种,在NuGet上有提供使用PagedList、PagedList.Mvc进行分页。

  1. 通过NuGet引用PagedList.Mvc

  在安装引用PagedList.Mvc的同时会安装引用PagedList。

  1.看一下Controller页面的代码,最后就简单的一句,将List数据ToPagedList返回过去就可以了。原来爱怎么分页可以怎么分页。

//引用
using PagedList;
namespace MvcApplication1.Controllers
{
public class SplitPageController : Controller
{
//
// GET: /SplitPage/ public ActionResult Index(int page = )
{
//取数据
List<Package.Model.Message> lists = new List<Package.Model.Message>();
MessageDal message = new MessageDal();
DataSet ds = message.GetList(" 1=1 "); //转成List
for (int i = ; i < ds.Tables[].Rows.Count; i++)
{
lists.Add(new Package.Model.Message()
{
gName = ds.Tables[].Rows[i]["gName"].ToString(),
gContent = ds.Tables[].Rows[i]["gContent"].ToString()
});
} //将数据分页后返回页面(这里可以在取数据的时候先分页后,再使用ToPagedList实现分页
return View( lists.ToPagedList(page, ));
} }
}

  返回后在HTML页面的显示

@model PagedList.IPagedList<Package.Model.Message>
@using PagedList.Mvc; @{
Layout = null;
} <!DOCTYPE html> <html>
<head>
<meta name="viewport" content="width=device-width" />
<title>Index</title>
</head>
<body>
<table>
<tr>
<th>
gname
</th>
<th>
gContent
</th>
<th> </th>
</tr>
@foreach (var item in Model)
{
<tr>
<td>
@Html.DisplayFor(modelItem => item.gName)
</td>
<td>
@Html.DisplayFor(modelItem => item.gContent)
</td>
<td></td>
</tr>
}
</table>
@Html.PagedListPager(Model, page => Url.Action("Index", new { page }))
</body>
</html>

  使用ViewBag返回分页数据,由于MODEL只有一个,如果按官网给的例子,那么一个页面只能有一个分页了,但是VIEWBAG点出来的却可以多个。

看一下显示,不多说了,直接上代码

  CONTROLLER页面

using PagedList;

namespace MvcApplication2.Controllers
{
public class HomeController : Controller
{
//
// GET: /Home/ public ActionResult Index(int page = )
{
//取数据
List<Package.Model.Message> lists = new List<Package.Model.Message>();
MessageDal message = new MessageDal();
DataSet ds = message.GetList(" 1=1 "); //转成List
for (int i = ; i < ds.Tables[].Rows.Count; i++)
{
lists.Add(new Package.Model.Message()
{
gName = ds.Tables[].Rows[i]["gName"].ToString(),
gContent = ds.Tables[].Rows[i]["gContent"].ToString()
});
} //将数据分页后返回页面(这里可以在取数据的时候先分页后,再使用ToPagedList实现分页
ViewBag.MyPageList = lists.ToPagedList(page, );
return View( );
} }
}

  VIEW视图

@using PagedList.Mvc;

@{
PagedList.IPagedList<Package.Model.Message> myPageList = (PagedList.IPagedList<Package.Model.Message>)ViewBag.MyPageList;
Layout = null;
} <!DOCTYPE html> <html>
<head>
<meta name="viewport" content="width=device-width" />
<link href="~/Content/PagedList.css" rel="stylesheet" />
<title>Index</title>
</head>
<body>
<table>
<tr>
<th>
gname
</th>
<th>
gContent
</th>
<th> </th>
</tr>
@foreach (var item in myPageList)
{
<tr>
<td>
@Html.DisplayFor(modelItem => item.gName)
</td>
<td>
@Html.DisplayFor(modelItem => item.gContent)
</td>
<td></td>
</tr>
}
</table>
每页 @myPageList.PageSize 条记录,共 @myPageList.PageCount 页,当前第 @myPageList.PageNumber 页
@Html.PagedListPager(myPageList, page => Url.Action("Index", new { page }))
</body>
</html>

  参考这个原文:http://www.cnblogs.com/libingql/p/3486554.html

ASP.NET MVC- 使用PageList.Mvc分页的更多相关文章

  1. MVC 使用PageList进行分页

    1.新建MVC项目 2.在Web项目下添加PagedList nuget 命令 :install-package pagedlist.mvc 在安装完成之后,会在Content下添加PagedList ...

  2. 【.NET MVC分页】.NET MVC 使用pagelist 分页

    1.安装 2. 在NuGet程序包管理控制台 ,输入Install-Package PagedList.mvc 安装PagedList 和PageList.Mvc; 3. @{ Layout = nu ...

  3. Configuring Autofac to work with the ASP.NET Identity Framework in MVC 5

    https://developingsoftware.com/configuring-autofac-to-work-with-the-aspnet-identity-framework-in-mvc ...

  4. ASP.NET CORE 1.0 MVC API 文档用 SWASHBUCKLE SWAGGER实现

    from:https://damienbod.com/2015/12/13/asp-net-5-mvc-6-api-documentation-using-swagger/ 代码生成工具: https ...

  5. ASP.NET 学习小记 -- “迷你”MVC实现(2)

    Controller的激活 ASP.NET MVC的URL路由系统通过注册的路由表对HTTO请求进行解析从而得到一个用户封装路由数据的RouteData对象,而这个过程是通过自定义的UrlRoutin ...

  6. 【.NET特供-第三季】ASP.NET MVC系列:MVC与三层图形对照(颠覆性理论)

           在[.NET特供-第三季]系列博客中的第一篇<ASP.NET MVC系列:MVC与三层图形对照>发表之后,引起了领导的注意.同一时候,开发小组内部在交流MVC和三层之间关系的 ...

  7. 【.NET特供-第三季】ASP.NET MVC系列:MVC与三层图形对照

    近期在开发小组在研究:BS项目中是利用'MVC框架'还是继续沿用'三层'的问题. 由于曾经的.NET项目大多数都是利用三层开发的,所以大多数人都可以对三层进行熟练地运用.而项目的開始我们也曾听说过MV ...

  8. ASP.NET Core 2.0 MVC项目实战

    一.前言 毕业后入职现在的公司快有一个月了,公司主要的产品用的是C/S架构,再加上自己现在还在学习维护很老的delphi项目,还是有很多不情愿的.之前实习时主要是做.NET的B/S架构的项目,主要还是 ...

  9. ASP.Net Core 2.2 MVC入门到基本使用系列 (二)

    本教程会对基本的.Net Core 进行一个大概的且不会太深入的讲解, 在您看完本系列之后, 能基本甚至熟练的使用.Net Core进行Web开发, 感受到.Net Core的魅力. 本教程知识点大体 ...

  10. ASP.Net Core 2.2 MVC入门到基本使用系列 (一)

    本教程会对基本的.Net Core 进行一个大概的且不会太深入的讲解, 在您看完本系列之后, 能基本甚至熟练的使用.Net Core进行Web开发, 感受到.Net Core的魅力. 本教程知识点大体 ...

随机推荐

  1. UVa 12304 (6个二维几何问题合集) 2D Geometry 110 in 1!

    这个题能1A纯属运气,要是WA掉,可真不知道该怎么去调了. 题意: 这是完全独立的6个子问题.代码中是根据字符串的长度来区分问题编号的. 给出三角形三点坐标,求外接圆圆心和半径. 给出三角形三点坐标, ...

  2. Error: "DEVELOPER_DIR" is not defined at ./symbolicatecrash line 53

    项目问题解析“Error: "DEVELOPER_DIR" is not defined at ./symbolicatecrash line 53.”这个问题是最近调试app的时 ...

  3. NSIS 2.0界面快速入门

    NSIS 2.0 版本支持定制的用户界面.所谓的 Modern UI(下称 MUI) 就是一种模仿最新的 Windows 界面风格的界面系统.MUI 改变了 NSIS 脚本的编写习惯,它使用 NSIS ...

  4. UVA 568 Just the Facts (水)

    题意: 求一个数n的阶乘,其往后数第1个不是0的数字是多少. 思路: [1,n]逐个乘,出现后缀0就过滤掉,比如12300就变成123,继续算下去.为解决爆long long问题,将其余一个数mod, ...

  5. IO负载高的来源定位

    前言: 在一般运维工作中经常会遇到这么一个场景,服务器的IO负载很高(iostat中的util),但是无法快速的定位到IO负载的来源进程和来源文件导致无法进行相应的策略来解决问题. 这个现象在MySQ ...

  6. dell optiplex台式机 安装win7 清楚分区的方法

    http://jingyan.baidu.com/article/92255446e1065f851648f42b.html

  7. PHP 获取远程文件的大小的3种方法

    1.使用file_get_contents() <?php $file = file_get_contents($url); echo strlen($file); ?> 2. 使用get ...

  8. 我需要在电脑上安装C编译器

    这本书中我们使用了gcc(GNU编译器套装),它不但功能十分强大,而且还是免费的.你需要确保你的电脑上已经安装了gcc.如果你的操作系统是Linux,恭喜你,你已经拥有了gcc.

  9. [转]JQuery.Ajax之错误调试帮助信息

    下面是Jquery中AJAX参数详细列表: 参数名 类型 描述 url String (默认: 当前页地址) 发送请求的地址. type String (默认: "GET") 请求 ...

  10. [Hive - LanguageManual] Describe

    Describe Describe Database Describe Table/View/Column Display Column Statistics Describe Partition D ...