视图模型- PagingInfo 类
???public class PagingInfo ???{ ???????public int TotalItems { get; set; } ???????public int ItemsPerPage { get; set; } ???????public int CurrentPage { get; set; } ???????public int TotalPages { get { return (int)Math.Ceiling((decimal)TotalItems / ItemsPerPage); } } ???}
创建 “HtmlHelpers” 文件夹,在 PagingHelper 类中定义 HTML 辅助器方法 PageLinks
???public static class PagingHelpers ???{ ???????//这是个扩展方法 ???????public static MvcHtmlString PageLinks(this HtmlHelper html, PagingInfo pagingInfo, Func<int, string> pageUrl) ???????{ ???????????StringBuilder result = new StringBuilder(); ???????????for (int i = 1; i <= pagingInfo.TotalPages; i++) ???????????{ ???????????????TagBuilder tag = new TagBuilder("a"); ??????//添加一个<a>标签 ???????????????tag.MergeAttribute("href", pageUrl(i)); ????//标签所指向的页数 ???????????????tag.InnerHtml = i.ToString(); ??????????????//标签显示的文本 ???????????????if (i == pagingInfo.CurrentPage) ???????????????{ ???????????????????tag.AddCssClass("selected"); ???????//对当前页的<a>标签添加值为selected的class属性 ???????????????????tag.AddCssClass("btn-primary"); ???????????????} ???????????????tag.AddCssClass("btn btn-default"); ????//对所有的<a>标签都添加值为“默认按钮”的class属性 ???????????????result.Append(tag.ToString()); ???????????} ???????????return MvcHtmlString.Create(result.ToString()); ???????} ???}
需要引入视图模型所在的命名空间
新建 ASP.NET MVC 项目快速代码
原文地址:http://www.cnblogs.com/zhangchaoran/p/7767576.html