• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
成为自己最想成为的那种人
博客园    首页    新随笔    联系   管理    订阅  订阅
显示页面链接(7.5.1)

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>

posted on 2017-10-07 09:43  遇见未来  阅读(206)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3