引用命名空间:
using System.Text; using System.Web.Mvc;
Html分页方法
#region 分页Html辅助方法 /// <summary> /// 分页Html辅助方法 /// </summary> /// <param name="htmlHelper"></param> /// <param name="currentPage"></param> /// <param name="pageSize"></param> /// <param name="totalCount"></param> /// <param name="parameterString"></param> /// <returns></returns> public static HtmlString PageNavigate(this HtmlHelper htmlHelper, int currentPage, int pageSize, int totalCount, string parameterString) { var redirectTo = htmlHelper.ViewContext.RequestContext.HttpContext.Request.Url.AbsolutePath; pageSize = pageSize == 0 ? 3 : pageSize; var totalPages = Math.Max((totalCount + pageSize - 1) / pageSize, 1);//总页数 var output = new StringBuilder(); output.Append("<nav>"); output.Append("<ul class='pagination'>"); string pageSizrWithParameter = string.Empty; if (!string.IsNullOrEmpty(parameterString)) pageSizrWithParameter = pageSize + "&" + parameterString; if (totalPages>1) { output.AppendFormat("<li><a href='{0}?pageIndex=1&pageSize={1}' aria-label='Previous'><span aria-hidden='true'>«</span></a></li>",redirectTo,pageSizrWithParameter); if (currentPage > 1)//处理上一页连接 output.AppendFormat("<li><a href='{0}?pageIndex={1}&pageSize={2}'>上一页</a></li>",redirectTo,currentPage-1,pageSizrWithParameter); output.Append(""); int currint = 5; for (int i = 0; i < 10; i++) {//一共最多显示10个页码,前面五个后面五个 if ((currentPage+i-currint)>=1 && (currentPage+1-currint)<=totalPages) { if (currint == i)//当前页处理 output.AppendFormat("<li class='active'><a href='{0}?pageIndex={1}&pageSize={2}'>{3}</a></li>", redirectTo, currentPage, pageSizrWithParameter, currentPage); else//一般页处理 output.AppendFormat("<li><a href='{0}?pageIndex={1}&pageSize={2}'>{3}</a></li>",redirectTo,currentPage+i-currint,pageSizrWithParameter,currentPage+i-currint); } output.Append(""); } if (currentPage < totalPages)//处理下一页连接 output.AppendFormat("<li><a href='{0}?pageIndex={1}&pageSize={2}'>下一页</a></li>", redirectTo, currentPage + 1, pageSizrWithParameter); output.Append(""); if (currentPage != totalPages) output.AppendFormat("<li><a href='{0}?pageIndex={1}&pageSize={2}'><span aria-hidden='true'>»</span></a></li>", redirectTo, totalPages, pageSizrWithParameter); output.Append(""); } output.Append("</ul>"); output.Append("</nav>"); return new HtmlString(output.ToString()); } #endregion