显示页面链接(7.5.1)

Posted 成为自己最想成为的那种人

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了显示页面链接(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>

以上是关于显示页面链接(7.5.1)的主要内容,如果未能解决你的问题,请参考以下文章

突出显示当前页面的导航菜单

更改 Tumblr 默认主题显示页面链接的方式

分享链接时找不到 Facebook 显示页面

PHP Wordpress - 显示当前页面的下一个和previos兄弟的链接,以及指向父页面的链接

JIRA 详情页面链接Confluence显示为乱码解决方法

如何单击 href 链接但阻止链接页面显示