首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在MVC3中使用MvcPaging2.0使用RouteValues?

在MVC3中使用MvcPaging2.0使用RouteValues,可以通过以下步骤来实现:

  1. 安装MvcPaging2.0:

在项目中安装MvcPaging2.0,可以使用NuGet包管理器。在Visual Studio中,打开“工具”>“NuGet包管理器”>“管理解决方案的NuGet程序包”,搜索“MvcPaging”并安装。

  1. 创建一个Paging类:

在项目中创建一个Paging类,用于存储分页信息。例如:

代码语言:csharp
复制
public class Paging
{
    public int PageSize { get; set; }
    public int PageNumber { get; set; }
    public int TotalItems { get; set; }
    public string RouteName { get; set; }
    public RouteValueDictionary RouteValues { get; set; }
}
  1. 创建一个分页帮助类:

在项目中创建一个分页帮助类,用于生成分页链接。例如:

代码语言:csharp
复制
public static class PagingHelpers
{
    public static MvcHtmlString Pager(this HtmlHelper html, Paging paging)
    {
        var builder = new TagBuilder("div");
        builder.AddCssClass("pager");

        int currentPage = paging.PageNumber;
        int totalPages = (int)Math.Ceiling((double)paging.TotalItems / paging.PageSize);

        if (currentPage > 1)
        {
            var routeValues = new RouteValueDictionary(paging.RouteValues);
            routeValues["page"] = currentPage - 1;
            var link = new TagBuilder("a");
            link.MergeAttribute("href", UrlHelper.GenerateUrl(null, paging.RouteName, null, routeValues, RouteTable.Routes, html.ViewContext.RequestContext, true));
            link.InnerHtml = "Previous";
            builder.InnerHtml += link.ToString();
        }

        if (currentPage< totalPages)
        {
            var routeValues = new RouteValueDictionary(paging.RouteValues);
            routeValues["page"] = currentPage + 1;
            var link = new TagBuilder("a");
            link.MergeAttribute("href", UrlHelper.GenerateUrl(null, paging.RouteName, null, routeValues, RouteTable.Routes, html.ViewContext.RequestContext, true));
            link.InnerHtml = "Next";
            builder.InnerHtml += link.ToString();
        }

        return MvcHtmlString.Create(builder.ToString());
    }
}
  1. 在控制器中使用分页:

在控制器中,使用分页类和分页帮助类来生成分页链接。例如:

代码语言:csharp
复制
public ActionResult Index(int page = 1)
{
    var paging = new Paging
    {
        PageSize = 10,
        PageNumber = page,
        TotalItems = 100,
        RouteName = "Index",
        RouteValues = new RouteValueDictionary { { "page", page } }
    };

    return View(paging);
}
  1. 在视图中使用分页:

在视图中,使用分页帮助类来显示分页链接。例如:

代码语言:csharp
复制
@model Paging

@Html.Pager(Model)

这样,在MVC3中就可以使用MvcPaging2.0使用RouteValues来实现分页功能了。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

何在CDH安装和使用StreamSets

[t1kggp7p0u.jpeg] [gthtxgcxg9.jpeg] 2.文档编写目的 ---- 本文档主要讲述如何在Cloudera Manager 管理的集群安装StreamSets和基本使用。...Field Masker提供固定和可变长度的掩码来屏蔽字段的所有数据。要显示数据的指定位置,您可以使用自定义掩码。...要显示数据的一组位置,可以使用正则表达式掩码来定义数据的结构,然后显示一个或多个组。...对于更一般的管道监控信息,您可以使用度量标准规则和警报。 Jython Evaluator的脚本为没有信用卡号码的信用卡交易创建错误记录。...我们将使用带有record:value()函数的表达式来标识信用卡号码字段/credit_card为空的情况。该函数返回指定字段的数据。

35.9K113
  • 技术干货| 如何在MongoDB轻松使用GridFS?

    什么时候使用GridFS 在MongoDB使用GridFS存储大于16 MB的文件。 在某些情况下,在MongoDB数据库存储大型文件可能比在系统级文件系统上存储效率更高。...此外,如果文件均小于16 MB BSON文档大小限制,请考虑将每个文件存储在单个文档,而不是使用GridFS。您可以使用BinData数据类型存储二进制数据。...GridFS通过使用存储桶名称为每个集合添加前缀,将集合放置在一个公共存储桶。...如果希望将其他任意字段添加到文件集合的文档,请将其添加到元数据字段的对象。 GridFS索引 GridFS使用每个块和文件集合上的索引来提高效率。...该索引允许高效地检索文件,本示例所示: db.fs.files.find( { filename: myFileName } ).sort( { uploadDate: 1 } ) 符合GridFS规范的驱动程序将在读取和写入操作之前自动确保此索引存在

    6.6K30

    何在Linux检查内存使用情况

    在对系统或应用程序速度减慢或行为异常进行故障排除时,首先要检查的问题之一是系统内存使用情况。 本文介绍了如何使用几种不同的命令来检查Linux的RAM使用情况。...used-已使用的内存。 计算公式为:used = total - free - buffers - cache free -可用/未使用的内存。.../proc/meminfo 检查RAM内存使用率的最简单方法是显示/proc/meminfo虚拟文件的内容。 free,top,ps和其他系统信息命令使用此文件。...可以解析/proc/meminfo文件的信息,并在shell脚本中使用。 ps_mem脚本 ps_mem是一个Python脚本,用于报告每个程序的RAM内存使用情况。...它可以与Python 2和3一起使用,并且可以使用pip安装 sudo pip3 install ps_mem 运行ps_mem需要管理员权限: sudo ps_mem 输出将按升序包括每个正在运行的程序的内存使用情况

    5.8K30

    在Excel处理和使用地理空间数据(POI数据)

    ,用于加载工作底图) III 其他 (非必须,自己下载的卫星图,自己处理的地图,绘制的总平面等——用于自定义底图) 03 具体操作 打开数据表格——[插入]选项卡——三维地图——自动打开三维地图窗口...https://support.office.com/zh-cn/article/三维地图入门-6b56a50d-3c3e-4a9e-a527-eea62a387030) ---- 接下来来将一些[调试]的关键点...I 坐标问题 理论上地图在无法使用通用的WGS84坐标系(规定吧),同一份数据对比ArcGIS的WGS84(4326)和Excel的WGS84、CJ-02(火星坐标系)的显示效果,可能WGS84(...4326)坐标系更加准确一点,也有查到说必应地图全球统一使用WGS84坐标系。...⇩不同坐标系下的对比 结论:建议使用WGS84坐标系(使用Sid分享脚本的用户可略过) II 自定义底图 Excel提供的底图为必应地图,虽然有很多种色彩体系,但不支持去掉路名、点位名称等标签,可能有点乱

    10.9K20

    何在Spring优雅的使用单例模式?

    Java使用构造方法去创建对象可以有三种方式: 使用new关键字 使用Class.getInstance(通过反射调用无参构造方法) 使用Constructor.newInstance(实则也是通过反射的方式调用任何构造方法...Spring下使用单例模式 最成功的单例并不是双重检验锁,而是枚举,枚举本身就是一种单例,并且无法使用反射攻击,再一个最优雅的是Spring本身实现的单例: 常用Spring @Repository、...,在调用过程可能会出现多个Bean实例,导致蜜汁错误。...实现单例的原因 把类注册为组件Bean后,从运行开始到结束,类只加载到内存一次,类进行初始化,该组件的生命周期就交由Spring容器管理,声明为单例的组件在Spring容器只会实例化一个Bean,多次请求复用同一个...Bean,Spring会先从缓存的Map查询是否存在该Bean,如果不存在才会创建对象。

    6.4K20

    何在 SwiftUI 熟练使用 sensoryFeedback 修饰符

    下面我们将学习如何使用 sensoryFeedback 修饰符在应用程序的不同操作中提供触觉反馈。...预定义样式SwiftUI 提供了许多预定义的反馈样式, success、warning、error、selection、increase、decrease、start、stop、alignment、levelChange...使用条件闭包触发如果要更灵活地控制何时触发反馈,请使用带有条件闭包版本的视图修饰符。...在闭包,返回一个布尔值,指示是否应播放反馈。使用反馈闭包触发要控制播放何种反馈,请使用视图修饰符的反馈闭包版本。...通过简单的附加,我们可以定义反馈样式和触发器值,实现了在应用程序不同操作产生的触觉效果。支持多种预定义样式,success、warning、error,以及个性化的impact样式。

    13821

    何在FME更好的使用Tester转换器

    Tester转换器 过滤规则: 需处理字段: Name与Address(要素只能有Name或Address的一个字段) 规则: 不能只有半括号(有全括号的可以):(、)、(、) 不能有特殊字符: 英文...、*、# 处理思路: 首先,确定要使用的转换器。既然是过滤,第一个要考虑的就是tester转换器,接下来就要考虑使用什么规则、怎么组合。...规则的组合: 在这里,我使用正则来过滤,表达式的设置截图如图1所示。...特殊字符设置比较简单,只要是要素要测试字段包含了该字符就算通过了规则,全括号与半括号的规则稍微复杂了一点,需要通过使用两条规则来组合,并且对第三条与第六条规则进行了取反设置。...更多内容可到视频查看: ?

    3.6K10
    领券