博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MVC快速分页
阅读量:5297 次
发布时间:2019-06-14

本文共 3077 字,大约阅读时间需要 10 分钟。

using System;namespace CWHomeWebSite.Models{    public class PagingInfo    {        //项目总数量        public int TotalItems { get; set; }        //当前索引        public int PageIndex { get; set; }        //分页大小        public int PageSize { get; set; }        //页数        public int PageCount        {            get            {                return (int)Math.Ceiling((decimal)TotalItems / PageSize);            }        }    }}

创建视图对应的ViewModel

using CWHomeWebSite.Data.Entities;using System.Collections.Generic;namespace CWHomeWebSite.Models{    public class PostViewModel    {        //博客集合        public IEnumerable
Posts { get; set; } //分页参数 public PagingInfo PagingInfo { get; set; } }}

处理Controller视图方法

public ActionResult Index(int pageIndex = 1, int pageSize = 2)        {            //获取当前分页数据集合            var posts = this.repository.Posts          .OrderBy(p=>p.UpdateTime)                 .Skip((pageIndex - 1) * pageSize)                .Take(pageSize);            //将当前ViewModel传递给视图            return View(new PostViewModel            {                Posts = posts,                PagingInfo = new PagingInfo                {                    TotalItems = this.repository.Posts.Count(),                    PageIndex = pageIndex,                    PageSize = pageSize                }            });        }

在View中通过Html辅助器扩展方法处理PagingInfo

using CWHomeWebSite.Models;using System;using System.Web.Mvc;namespace CWHomeWebSite.Helper{    public static class PagingHelper    {        //HtmlHelper扩展方法,用于分页        public static MvcHtmlString Pagination(this HtmlHelper html, PagingInfo pageInfo,Func
pageLinks) { var htmlString = pageLinks(pageInfo); return MvcHtmlString.Create(htmlString); } }}
@model CWHomeWebSite.Models.PostViewModel@using CWHomeWebSite.Helper@{    ViewBag.Title = "主页";}
    @foreach (var post in Model.Posts) {
  • @post.Title
    | @post.CreateTime.ToShortDateString()

    @post.Description

    • @Html.ActionLink("更多", "Detail", "Home", new { @post.PostId }, new { @class = "button" })

  • }
@Html.Pagination(Model.PagingInfo, (info) => { var pagingString = "
    "; for (var i = 1; i <= info.PageCount; i++) { if (i == info.PageIndex) { pagingString += "
  • " + i + "
  • "; } else pagingString += "
  • " + i + "
  • "; } pagingString += "
"; return pagingString; })
@Html.Action("RecentWorks", "Work")

url跳转:

@Url.Action("Index", "Home", new { id=1})“生成的html是:”生成的url为: /Home/Index/1“

 

转载于:https://www.cnblogs.com/shy1766IT/p/5246486.html

你可能感兴趣的文章
E. Train Hard, Win Easy
查看>>
放下心情,从最基础的开始来学习Javascript!
查看>>
JS实现图片的选择并预览,并且能删除
查看>>
PTA L2-004 这是二叉搜索树吗?-判断是否是对一棵二叉搜索树或其镜像进行前序遍历的结果 团体程序设计天梯赛-练习集...
查看>>
codeforces E - Anya and Cubes 分块处理 暴力搜索
查看>>
Unity3d UGUI序列帧动画
查看>>
如何给spine骨骼动画挂载粒子特效
查看>>
POJO、JavaBean、DTO的区别
查看>>
mysql 主从复制 (2)
查看>>
基本算法_位运算_lowbit
查看>>
EXTI—外部中断/事件控制器
查看>>
我所理解的Delphi中的数组类型
查看>>
Java基础知识强化95:Calendar类之Calendar类的add()和set()方法
查看>>
腾讯面试问题
查看>>
虚拟机上安装Cell节点(12.1.2.3.3)
查看>>
python 学习笔记(二)两种方式实现第一个python程序
查看>>
P1140 相似基因 (动态规划)
查看>>
手风琴适应用左侧导航
查看>>
COM编程之二 接口
查看>>
夜间模式的开启与关闭,父模板的制作
查看>>