asp.net mvc 分页

一个简单的asp.net mvc3分页

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Web.Mvc;
using System.Web.Mvc.Html;

namespace System.Web.Mvc.Html
{
    public static class ExtensionMethods
    {
        /// <summary>/// 创建分页链接/// </summary>
        /// <param name="helper">HtmlHelper类</param>
        /// <param name="startPage">开始页 (多数情况下是 1)</param>
        /// <param name="currentPage">当前页</param>
        /// <param name="totalPages">总页数</param>
        /// <param name="pagesToShow">前后显示的页数</param>
        public static MvcHtmlString Pager(this HtmlHelper helper, int startPage, int currentPage, int totalPages, int pagesToShow)
        {
            System.Web.Routing.RouteData  routeData = helper.ViewContext.RouteData;
            //你可能还要获取action    
            string action = routeData.Values["action"].ToString();   
            string controller = routeData.Values["controller"].ToString();
            StringBuilder html = new StringBuilder();
            //创建从第一页到最后一页的列表    
            html = Enumerable.Range(startPage, totalPages).Where(i => (currentPage - pagesToShow) < i & i < (currentPage + pagesToShow))
                .Aggregate(new StringBuilder(@"<div class=""pagination""><span class=pageCount>共" + totalPages + "页</span>"), (seed, page) =>
                {
                    //当前页        
                    if (page == currentPage)
                        seed.AppendFormat("<span class=selectPage>{0}</span>", page);
                    else
                    {
                        //第一页时显示:domain/archives            
                        if (page == 1)
                        {
                            seed.AppendFormat("<a class=pageNum href=\"/{0}\">{1}</a>", controller.ToLower(), page);
                        }
                        else
                        {
                            seed.AppendFormat("<a  class=pageNum href=\"/{0}/{2}/{1}\">{1}</a>", controller.ToLower(), page, action);
                        }
                    }
                    return seed;
                }
            );
            html.Append(@"</div>");
            return MvcHtmlString.Create(html.ToString());
        }
    }
}
原文地址:https://www.cnblogs.com/macil/p/2550753.html