1、分页实体类

    public class PageDto
{
public int PageIndex { get; set; }
public int PageSize { get; set; }
public int PageCount { get; set; }
public int TotalCount { get; set; }
}

后端代码

        public async Task<IActionResult> Index()
{
var page = HttpContext.Request.Query["page"].ToString();
var pageSize = HttpContext.Request.Query["pageSize"].ToString(); var searchDto = new FileSearchDto()
{
PageIndex = string.IsNullOrWhiteSpace(page) ? 1 : Convert.ToInt32(page),
PageSize = string.IsNullOrWhiteSpace(pageSize) ? 5 : Convert.ToInt32(pageSize)
}; var results = await _service.GetPageList(searchDto);
var model = new FileListViewModel() { Results = results };
return View(model);
}

  

2、视图

@using System.Text;
@model BaseService.PageDto @if (Model.TotalCount > Model.PageSize)
{
var controller = Url.ActionContext.RouteData.Values["controller"];
var action = Url.ActionContext.RouteData.Values["action"];
var url = "/" + controller + "/" + action;
var querys = Url.ActionContext.HttpContext.Request.Query;
StringBuilder sb = new StringBuilder();
sb.AppendFormat("/{0}/{1}?", controller, action);
if (querys != null && querys.Count > 0)
{
foreach (var item in querys)
{
if (!item.Key.Equals("page"))
{
sb.AppendFormat("{0}={1}", item.Key, item.Value);
sb.Append("&");
}
}
}
sb.Append("page"); url = sb.ToString(); <div style="position:fixed;bottom:-15px;text-align:center;width:84%">
<ul class="pagination">
<h5 class="pull-left">显示第 @((Model.PageIndex - 1) * Model.PageSize + 1) - @(Model.PageIndex * Model.PageSize > Model.TotalCount ? Model.TotalCount : Model.PageIndex * Model.PageSize) 条记录,共 @Model.TotalCount 条记录</h5>
@if (Model.PageIndex > 1)
{
<li><a href="@url=1" title="首页"><i class="fa fa-chevron-left"></i></a></li>
}
else
{
<li class="disabled"><a href="javascript:;" title="首页"><i class="fa fa-chevron-left"></i></a></li> }
@{
int pagesizeshow = 6;//每次显示分页按钮数量
int pagemin = Model.PageIndex - (int)(pagesizeshow / 2);
int pagemax = Model.PageIndex + (int)(pagesizeshow / 2);
if (Model.PageIndex + (int)(pagesizeshow / 2) >= Model.PageCount)
{
pagemin = Model.PageCount - (int)(pagesizeshow / 2);
pagemax = Model.PageCount;
}
if (Model.PageIndex <= (int)(pagesizeshow / 2))
{
pagemin = 1;
pagemax = pagesizeshow;
}
if (pagemin <= 0) { pagemin = 1; }
if (pagemax >= Model.PageCount) { pagemax = Model.PageCount; }
if (pagemin + pagesizeshow >= Model.PageCount) { pagemin = (Model.PageCount - pagesizeshow) >= 1 ? (Model.PageCount - pagesizeshow) : pagemin; } if (pagemin == pagemax)
{
<li><a href="@url=@pagemin">@pagemin</a></li>
}
else
{
for (int i = pagemin; i <= pagemax; i++)
{
<li @if (Model.PageIndex == i) { <text> class="active" </text> }><a href="@url=@i">@i</a></li>
}
}
} @if (Model.PageIndex < Model.PageCount)
{
<li><a href="@url=@Model.PageCount" title="尾页"><i class="fa fa-chevron-right"></i></a></li>
}
else
{
<li class="disabled"><a href="javascript:;" title="尾页"><i class="fa fa-chevron-right"></i></a></li>
}
</ul>
</div>
}

3、调用

@Html.Partial("~/Views/Pager/Create.cshtml", Model.Results.Page)

.net mvc 分页的更多相关文章

  1. MVC分页

    http://www.cnblogs.com/iamlilinfeng/p/4075292.html 目录 一.Contrl与View数据传递(多表数据) 二.分页控件介绍 三.MVC源码说明 四.源 ...

  2. ASP.NET MVC分页组件MvcPager 2.0版发布暨网站全新改版

    MvcPager分页控件是在ASP.NET MVC Web应用程序中实现分页功能的一系列扩展方法,该分页控件的最初的实现方法借鉴了网上流行的部分源代码, 尤其是ScottGu的PagedList< ...

  3. ASP.NET MVC 4使用PagedList.Mvc分页

    ASP.NET MVC中进行分页的方式有多种,在NuGet上有提供使用PagedList.PagedList.Mvc进行分页. 1. 通过NuGet引用PagedList.Mvc 在安装引用Paged ...

  4. ASP.NET MVC分页实现之改进版-增加同一个视图可设置多个分页

    我之前就已经实现了ASP.NET MVC分页(查看该博文),但它有局限性,必须确保在同一个视图中只能有一处分页,若需要在同一个视图中设置多个分页,却无能为力,为此,我重新对原先的代码进行了优化,增加了 ...

  5. Mvc 分页栏扩展方法

    using System; using System.Collections.Generic; using System.Reflection; using System.Text; using Sy ...

  6. 转:MVC分页

    原文地址:http://www.cnblogs.com/iamlilinfeng/p/4075292.html 分页总是搞得我很烦,也是因为刚接触,貌似有好多插件,之前在用一个,可是后来发现一翻页原来 ...

  7. spring mvc 分页

    spring mvc 分页

  8. 基于Bootstrap的Asp.net Mvc 分页

    基于Bootstrap的Asp.net Mvc 分页的实现 最近写了一个mvc 的 分页,样式是基于 bootstrap 的 ,提供查询条件,不过可以自己写样式根据个人的喜好,以此分享一下.首先新建一 ...

  9. Mvc分页组件MvcSimplePager代码重构

    1 Mvc分页组件MvcSimplePager代码重构 1.1 Intro 1.2 MvcSimplePager 代码优化 1.3 MvcSimplePager 使用 1.4 End Mvc分页组件M ...

  10. Mvc分页组件MvcSimplePager代码重构及使用

    1 Mvc分页组件MvcSimplePager代码重构 1.1 Intro 1.2 MvcSimplePager 代码优化 1.3 MvcSimplePager 使用 1.4 End Mvc分页组件M ...

随机推荐

  1. MongoDB 教程(六):创建集合、删除集合

    MongoDB 创建集合 MongoDB 中使用 createCollection() 方法来创建集合. 语法格式: db.createCollection(name, options) 参数说明: ...

  2. Eclipse+Spring boot开发教程

    一.安装 其实spring boot官方已经提供了用于开发spring boot的定制版eclipse(STS,Spring Tool Suite)直接下载使用即可,但考虑到可能有些小伙伴不想又多装个 ...

  3. SQL注入理解与防御

    一.说明 sql注入可能是很多学习渗透测试的人接触的第一类漏洞,这很正常因为sql注入可能是web最经典的漏洞.但在很多教程中有的只讲‘或and 1=1.and 1=2有的可能会进一步讲union s ...

  4. day 01 python基础

    1.计算机历史 2.python历史 宏观: python2和python3的区别: python2  源码不标准,混乱,重复代码过多 python3  统一标准,去除重复代码 3.python环境 ...

  5. Eclipse+Maven+Scala Project+Spark | 编译并打包wordcount程序

    学习用Eclipse+Maven来构建并打包一个简单的单词统计的例程. 本项目源码已托管于Github –>[Spark-wordcount] 第一步 在EclipseIDE中安装Scala插件 ...

  6. Python *Mix_w3

    1.基本数据类型(int,bool,str) int 整数 str 字符串. 一般不存放大量的数据 bool 布尔值. 用来判断. True, False list 列表.用来存放大量数据, []表示 ...

  7. day41-python多进程多线程-多线程共享

    线程共享变量多线程和多进程不同之处在于多线程本身就是可以和父进程共享内存的,这也是为什么其中一个线程挂掉以后,为什么其他线程也会死掉的道理. import threading def worker() ...

  8. Flex 布局语法教程

    一.Flex布局是什么? Flex是Flexible Box的缩写,翻译成中文就是“弹性盒子”,用来为盒装模型提供最大的灵活性.任何一个容器都可以指定为Flex布局. .box{ display: - ...

  9. Python测试框架之Unittest梳理

    1. 2.

  10. Centos7修改分区空间

    一:缩小/home空间 1.1:备份/home内容 cp -r /home/* /homebak 1.2:删除挂载/home umount /home 1.3:删除/home所在lv lvremove ...