码迷,mamicode.com
首页 > 其他好文 > 详细

显示页面链接(7.5.1)

时间:2017-10-07 14:39:24      阅读:160      评论:0      收藏:0      [点我收藏+]

标签:str   mat   连接   page   细节   文件夹   通过   this   web   

1、添加视图模型 PagingInfo(WebUI.Models)(这一步不用改,每个项目照用就行)

    创建 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 ); }}    //总页数(这对于一共生成几个<a>标签有用)

2、添加 HTML 辅助器方法(这一步不用改,每个项目照用就行)

    有了视图模型 PagingInfo 还需要实现 HTML 辅助器方法 “PageLinks”

    (在 WebUI 项目中创建一个 “HtmlHelpers” 文件夹,并添加一个 “PagingHelpers” 类文件——其实这一点都不重要)

    重要的是在创建的类文件里面定义一个 “HtmlHelper” 类的扩展方法,该方法的名字叫做 “PageLinks”

        public static MvcHtmlString PageLinks(this HtmlHelper html, PagingInfo pagingInfo, Func<int,string> pageUrl)

    (这段代码并不重要,因为你不需要修改,在每个项目中直接用就行)

    需要在视图中引用该扩展方法所在的命名空间。

3、添加要渲染的视图的模型数据

    为了更方便的将视图所需要的所有数据传递给视图,首先将控制器要发送给视图的所有数据封装成一个单一的视图模型类——ProductsListViewModel(对于不同的视图封装也不一样)

    更新控制器中的动作方法,通过 ProductsListViewModel 将产品细节和分页细节传递给视图

        public ViewResult List(int page = 1)
        {
          ProductsListViewModel model = new ProductsListViewModel
          {
            Products =     ,

            PagingInfo = new PagingInfo
            {
              CurrentPage = page,    //初始值为上面的1,之后等于视图传回的值
              ItemsPerPage =   ,
              TotalItems =   .Count
            }
          } ;

          return View(model);    //将一个 ProductsListViewModel 对象作为模型数据传递给视图
        }

4、显示页面连接——修改视图内容

    @model …….WebUI.Models.ProductsListViewModel

    ……

    <div class="btn-group pull-right">

      @Html.PageLinks(Model.PagingInfo, x => Url.Action("List", new { page = x }))

    </div>

显示页面链接(7.5.1)

标签:str   mat   连接   page   细节   文件夹   通过   this   web   

原文地址:http://www.cnblogs.com/zhangchaoran/p/7634169.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!