MvcPager 概述

 

MvcPager分页控件是在ASP.NET MVC Web应用程序中实现分页功能的一系列扩展方法,该分页控件的最初的实现方法借鉴了网上流行的部分源代码, 尤其是ScottGu的PagedList<T>类和相关方法,经过站长不断完善和改进后推出的比较成熟而且功能强大的ASP.NET MVC分页解决方案。

MvcPager主要功能:

  1. 实现最基本的url route分页功能;
  2. 支持手工输入或选择页索引并对输入的页索引进行有效性验证;
  3. 支持使用jQuery实现Ajax分页,生成的Html代码更精简;
  4. Ajax分页模式下支持在分页过程中通过GET或POST方法提交表单数据,实现查询功能;
  5. Ajax分页模式下支持浏览器历史记录功能(暂不支持IE7及早期版本和Opera浏览器);
  6. Ajax分页模式下,若客户端浏览器不支持或禁用Javascript功能时优雅降级为普通分页
  7. 搜索引擎友好,无论是普通分页还是Ajax分页,搜索引擎都可以直接搜索到所有页面。
  8. 支持最新的ASP.NET MVC 4.0 和 5.0 RC1;
  9. 支持IE、Firefox、Opera、Chrome及Safari等常用浏览器;

MvcPager 2.0 更新说明

MvcPager 2.0版在原1.5版的基础上进行了比较大的升级,重写了大量代码,新增了不少功能,优化了最终生成的html代码,尤其是在Ajax分页模式下,最终生 成的html代码比1.5版减少了二倍以上,且html代码更符合html 5规范,主要更新说明如下:

  • 新增 IPagedList<T>接口;
  • 新增 DisplayNameFor HtmlHelper扩展方法使其支持 IPagedList<T>和PagedList<T>;
  • Ajax分页模式时浏览器历史记录支持(暂不支持IE7以下及Opera浏览器,下一版本中完善);
  • Ajax分页模式下支持在分页过程中,通过GET和POST自动提交查询条件,实现多条件查询功能;
  • ToPagedList扩展方法新增了当前页索引超出总页数时改变当前页索引为最后一页的页索引,同时返回最后一页数据的功能;
  • 当MvcPager当前使用的路由定义中页索引参数的默认值为UrlParameter.Optional或页索引参数在路由参数中不存在时,生成的首页url将自动移除页索引参数,使其与默认首页url保持一致,利于SEO优化;
  • PagerOptions新增FirstPageRouteName属性,指定第一页默认的路由名称,去掉页索引参数,优化SEO;
  • 解决分页时url中中文参数被反复编码的bug。
  • 移除PagerOptions.UseJqueryAjax属性;
  • PagerOptions的SeperatorHtml属性更名为PagerItemsSeperator;
  • 移除HtmlHelper的AjaxPager扩展方法,Ajax分页模式统一使用AjaxHelper的Pager扩展方法,不再支持Microsoft Ajax,仅支持jQuery,与官方保持一致;
  • Ajax.Pager扩展方法不再接受AjaxOptions参数,改为MvcAjaxOptions,MvcAjaxOptions继承自AjaxOptions;
  • MvcAjaxOptions新增属性EnablePartialLoading,用于支持Ajax分页模式下局部加载功能;
  • MvcAjaxOptions新增属性DataFormId,用于标识在Ajax分页模式下,分页时向服务器端通过Ajax提交的数据所在的Form和ID,用于实现Ajax分页模式下的查询功能;
  • 解决了PagerOptions.AlwaysShowFirstLastPageNumber为true时,第一页页索引按钮和更多页按钮显示不正确的问题;
  • 新增了两个PagedList构造函数;
  • 为IEnumerable<T>接口添加ToPagedList扩展方法;
  • 新增HtmlHelper扩展方法RegisterMvcPagerScriptResource,用于注册MvcPager的客户端jQuery插件脚本;
  • MvcPager 2.0 for ASP.NET 4.0目标编译框架为.Net Framework 4.0,可用于目标框架为.Net Framework 4.0或4.5的ASP.NET MVC 4.0项目中;
  • 取消对ASP.NET MVC 2.0的支持,仅支持ASP.NET MVC 3.0以上版本;

升级说明:

从MvcPager 1.5升级到2.0时,需注意以下事项:

  1. 原HtmlHelper的AjaxPager扩展方法已移除,需要改为使用AjaxHelper的Pager扩展方法;
  2. 当需要使用页索引输入或下拉框以及使用Ajax分页模式时,必须用Html.RegisterMvcPagerScriptResource方法注册客户端脚本,否则无法正常分页;
  3. 使用AjaxHelper的Pager扩展方法时,原AjaxOptions参数需改为MvcAjaxOptions;
  4. PagerOptions的SeperatorHtml属性改为PagerItemsSeperator;

运行最低需求:

  1. jQuery 1.7及以上版本;(仅当启用页索引输入或选择框以及使用Ajax分页模式时才必需)
  2. ASP.NET MVC 4.0及以上版本;

2.0版已知问题:

  1. Ajax分页模式下浏览器历史记录支持功能暂不支持IE7以下及Opera浏览器;
  2. Url中值为空的参数在分页后将被从Url中去除;如:/articles/show/2?cls=news&type= 在分页后type参数将丢失,Url变为:/articles/show/3?cls=news
  3. 为AjaxForm使用Ajax分页查询功能时,web.config中的UnobtrusiveJavaScriptEnabled必须设为true(默认),否则会导致分页时数据被加载两次;

MvcPager概述的更多相关文章

  1. MvcPager 概述 MvcPager 分页示例 — 标准Ajax分页 对SEO进行优化的ajax分页 (支持asp.net mvc)

    该示例演示如何使用MvcPager最基本的Ajax分页模式. 使用AjaxHelper的Pager扩展方法来实现Ajax分页,使用Ajax分页模式时,必须至少指定MvcAjaxOptions的Upda ...

  2. 【AR实验室】ARToolKit之概述篇

    0x00 - 前言 我从去年就开始对AR(Augmented Reality)技术比较关注,但是去年AR行业一直处于偶尔发声的状态,丝毫没有其"异姓同名"的兄弟VR(Virtual ...

  3. Recurrent Neural Network系列1--RNN(循环神经网络)概述

    作者:zhbzz2007 出处:http://www.cnblogs.com/zhbzz2007 欢迎转载,也请保留这段声明.谢谢! 本文翻译自 RECURRENT NEURAL NETWORKS T ...

  4. Swift3.0服务端开发(一) 完整示例概述及Perfect环境搭建与配置(服务端+iOS端)

    本篇博客算是一个开头,接下来会持续更新使用Swift3.0开发服务端相关的博客.当然,我们使用目前使用Swift开发服务端较为成熟的框架Perfect来实现.Perfect框架是加拿大一个创业团队开发 ...

  5. .Net 大型分布式基础服务架构横向演变概述

    一. 业务背景 构建具备高可用,高扩展性,高性能,能承载高并发,大流量的分布式电子商务平台,支持用户,订单,采购,物流,配送,财务等多个项目的协作,便于后续运营报表,分析,便于运维及监控. 二. 基础 ...

  6. [C#] 进阶 - LINQ 标准查询操作概述

    LINQ 标准查询操作概述 序 “标准查询运算符”是组成语言集成查询 (LINQ) 模式的方法.大多数这些方法都在序列上运行,其中的序列是一个对象,其类型实现了IEnumerable<T> ...

  7. 【基于WinForm+Access局域网共享数据库的项目总结】之篇一:WinForm开发总体概述与技术实现

    篇一:WinForm开发总体概述与技术实现 篇二:WinForm开发扇形图统计和Excel数据导出 篇三:Access远程连接数据库和窗体打包部署 [小记]:最近基于WinForm+Access数据库 ...

  8. Java消息队列--JMS概述

    1.什么是JMS JMS即Java消息服务(Java Message Service)应用程序接口,是一个Java平台中关于面向消息中间件(MOM)的API,用于在两个应用程序之间,或分布式系统中发送 ...

  9. [AlwaysOn Availability Groups]健康模型 Part 1——概述

    健康模型概述 在成功部署AG之后,跟踪和维护健康状况是很重要的. 1.AG健康模型概述 AG的健康模型是基于策略管理(Policy Based Management PBM)的.如果不熟悉这个特性,可 ...

随机推荐

  1. AFNnetworking快速教程,官方入门教程译

    AFNnetworking快速教程,官方入门教程译 分类: IOS2013-12-15 20:29 12489人阅读 评论(5) 收藏 举报 afnetworkingjsonios入门教程快速教程 A ...

  2. Android 源码编译环境搭建(64位Ubuntu)各种依赖包安装

    1.准备: 普通PC(要求能上网), PC的操作系统Ubuntu 10.04 LTS(64位的),已经下载好的Android 1.6_r1的源代码. 2.Linux的依赖package安装: 为了更快 ...

  3. 用root帐号切换其他帐号提示 su: warning: cannot change directory to /home/oracle: Permission denied

    用root帐号切换其他帐号提示: 出错原因: 基本上是根目录或者是/home/oracle目录权限的问题 解决办法: 更改根目录权限为755,并保证对应用户主目录的所属用户和所属组一致和用户名一致. ...

  4. 注册nodejs程序为windows服务

    转载地址:http://www.grati.org/?p=236 应lemonhall要求,写一篇在windows中部署nodejs程序的文章,并提供了how to node上 “deploying- ...

  5. CSS3 Flexbox布局那些事

    相信研究过CSS3的同学对Flexbox布局一定不会陌生(作为一个未来主流的布局方式,至少有所耳闻).最近完成了两个项目:一个是移动端H5项目,一个是嵌入HTML页面的mac客户端项目.为了庆祝这两个 ...

  6. Unity欢迎窗口的信息

    1.Video Tutorials提供Unity相关的教程,包括用户手册.组件手册以及脚本手册等内容.2.Unity Basics提供Unity的基础知识,例如操作界面.工作流程.发布设置等内容.3. ...

  7. linux下的shell和脚本

    1.各种Unix shell linux下的shell基本是从unix环境中的shell发展而来,贴一下wiki:其中我们常用的,可归类为Bourne Shell(/usr/bin/sh或/bin/s ...

  8. 【转】在ubuntu12.04中安装wine和sourceinsight

    PS: 用wine其实还可以在Linux下运行其他Windows软件,比如BeyondCompare,过程是一样的 原文网址:http://www.2cto.com/os/201408/322370. ...

  9. bzoj2154

    #include<cstdio> #include<cstdlib> #include<iostream> #include<fstream> #inc ...

  10. 【POJ2242】The Circumference of the Circle(初等几何)

    已知三点坐标,算圆面积. 使用初等几何知识,根据海伦公式s = sqrt(p(p - a)(p - b)(p - c)) 和 外接圆直径 d = a * b * c / (2s) 来直接计算. #in ...