asp.net MVC使用EF框架分页

  • 数据库脚本
  • 数据库以Roles为例
  • 控制器代码
  • 视图代码

数据库脚本

USE [master]
GO
/****** Object:  Database [RbacDB]    Script Date: 2020/6/2 23:51:00 ******/
CREATE DATABASE [RbacDB]CONTAINMENT = NONEON  PRIMARY
( NAME = N'RbacDB', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\DATA\RbacDB.mdf' , SIZE = 8192KB , MAXSIZE = UNLIMITED, FILEGROWTH = 65536KB )LOG ON
( NAME = N'RbacDB_log', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\DATA\RbacDB_log.ldf' , SIZE = 8192KB , MAXSIZE = 2048GB , FILEGROWTH = 65536KB )
GO
ALTER DATABASE [RbacDB] SET COMPATIBILITY_LEVEL = 140
GO
IF (1 = FULLTEXTSERVICEPROPERTY('IsFullTextInstalled'))
begin
EXEC [RbacDB].[dbo].[sp_fulltext_database] @action = 'enable'
end
GO
ALTER DATABASE [RbacDB] SET ANSI_NULL_DEFAULT OFF
GO
ALTER DATABASE [RbacDB] SET ANSI_NULLS OFF
GO
ALTER DATABASE [RbacDB] SET ANSI_PADDING OFF
GO
ALTER DATABASE [RbacDB] SET ANSI_WARNINGS OFF
GO
ALTER DATABASE [RbacDB] SET ARITHABORT OFF
GO
ALTER DATABASE [RbacDB] SET AUTO_CLOSE OFF
GO
ALTER DATABASE [RbacDB] SET AUTO_SHRINK OFF
GO
ALTER DATABASE [RbacDB] SET AUTO_UPDATE_STATISTICS ON
GO
ALTER DATABASE [RbacDB] SET CURSOR_CLOSE_ON_COMMIT OFF
GO
ALTER DATABASE [RbacDB] SET CURSOR_DEFAULT  GLOBAL
GO
ALTER DATABASE [RbacDB] SET CONCAT_NULL_YIELDS_NULL OFF
GO
ALTER DATABASE [RbacDB] SET NUMERIC_ROUNDABORT OFF
GO
ALTER DATABASE [RbacDB] SET QUOTED_IDENTIFIER OFF
GO
ALTER DATABASE [RbacDB] SET RECURSIVE_TRIGGERS OFF
GO
ALTER DATABASE [RbacDB] SET  DISABLE_BROKER
GO
ALTER DATABASE [RbacDB] SET AUTO_UPDATE_STATISTICS_ASYNC OFF
GO
ALTER DATABASE [RbacDB] SET DATE_CORRELATION_OPTIMIZATION OFF
GO
ALTER DATABASE [RbacDB] SET TRUSTWORTHY OFF
GO
ALTER DATABASE [RbacDB] SET ALLOW_SNAPSHOT_ISOLATION OFF
GO
ALTER DATABASE [RbacDB] SET PARAMETERIZATION SIMPLE
GO
ALTER DATABASE [RbacDB] SET READ_COMMITTED_SNAPSHOT OFF
GO
ALTER DATABASE [RbacDB] SET HONOR_BROKER_PRIORITY OFF
GO
ALTER DATABASE [RbacDB] SET RECOVERY FULL
GO
ALTER DATABASE [RbacDB] SET  MULTI_USER
GO
ALTER DATABASE [RbacDB] SET PAGE_VERIFY CHECKSUM
GO
ALTER DATABASE [RbacDB] SET DB_CHAINING OFF
GO
ALTER DATABASE [RbacDB] SET FILESTREAM( NON_TRANSACTED_ACCESS = OFF ) GO
ALTER DATABASE [RbacDB] SET TARGET_RECOVERY_TIME = 60 SECONDS
GO
ALTER DATABASE [RbacDB] SET DELAYED_DURABILITY = DISABLED
GO
EXEC sys.sp_db_vardecimal_storage_format N'RbacDB', N'ON'
GO
ALTER DATABASE [RbacDB] SET QUERY_STORE = OFF
GO
USE [RbacDB]
GO
/****** Object:  Table [dbo].[Permissions]    Script Date: 2020/6/2 23:51:01 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Permissions]([ID] [int] IDENTITY(1,1) NOT NULL,[Name] [nvarchar](50) NULL,[Url] [nvarchar](50) NULL,[Remark] [nvarchar](50) NULL,CONSTRAINT [PK_Menus] PRIMARY KEY CLUSTERED
([ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[RolePermissions]    Script Date: 2020/6/2 23:51:01 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[RolePermissions]([ID] [int] IDENTITY(1,1) NOT NULL,[RoleID] [int] NULL,[PermissionID] [int] NULL,CONSTRAINT [PK_R_Role_Menus] PRIMARY KEY CLUSTERED
([ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[Roles]    Script Date: 2020/6/2 23:51:01 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Roles]([ID] [int] IDENTITY(1,1) NOT NULL,[Name] [nvarchar](50) NULL,[Remark] [nvarchar](50) NULL,CONSTRAINT [PK_Roles] PRIMARY KEY CLUSTERED
([ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[UserInfos]    Script Date: 2020/6/2 23:51:01 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[UserInfos]([ID] [int] IDENTITY(1,1) NOT NULL,[Name] [nvarchar](50) NULL,[RoleID] [int] NULL,[Account] [nvarchar](50) NULL,[Pwd] [nvarchar](50) NULL,[Sex] [bit] NULL,[Hobby] [nvarchar](100) NULL,[Photo] [nvarchar](100) NULL,[Remark] [nvarchar](50) NULL,CONSTRAINT [PK_UserInfos] PRIMARY KEY CLUSTERED
([ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET IDENTITY_INSERT [dbo].[Permissions] ON INSERT [dbo].[Permissions] ([ID], [Name], [Url], [Remark]) VALUES (2, N'用户管理', N'/userinfo/index', NULL)
INSERT [dbo].[Permissions] ([ID], [Name], [Url], [Remark]) VALUES (14, N'角色管理', N'/role/index', NULL)
INSERT [dbo].[Permissions] ([ID], [Name], [Url], [Remark]) VALUES (17, N'权限管理', N'/permission/index', NULL)
INSERT [dbo].[Permissions] ([ID], [Name], [Url], [Remark]) VALUES (22, N'教师管理', N'/teacher/index', NULL)
INSERT [dbo].[Permissions] ([ID], [Name], [Url], [Remark]) VALUES (23, N'班级管理', N'/classInfo/index', NULL)
INSERT [dbo].[Permissions] ([ID], [Name], [Url], [Remark]) VALUES (24, N'学生管理', N'/student/index', NULL)
INSERT [dbo].[Permissions] ([ID], [Name], [Url], [Remark]) VALUES (38, N'题库管理', N'/question/index', NULL)
INSERT [dbo].[Permissions] ([ID], [Name], [Url], [Remark]) VALUES (46, N'班级考试', N'/ClassInfoTestInfo/index', NULL)
INSERT [dbo].[Permissions] ([ID], [Name], [Url], [Remark]) VALUES (49, N'我的考试', N'/studenttestInfo/index', NULL)
INSERT [dbo].[Permissions] ([ID], [Name], [Url], [Remark]) VALUES (55, N'部门管理', N'/Department/index', NULL)
INSERT [dbo].[Permissions] ([ID], [Name], [Url], [Remark]) VALUES (56, N'给角色设置权限', N'/RolePermission/index', NULL)
INSERT [dbo].[Permissions] ([ID], [Name], [Url], [Remark]) VALUES (57, N'测试', N'/test/index', NULL)
SET IDENTITY_INSERT [dbo].[Permissions] OFF
SET IDENTITY_INSERT [dbo].[RolePermissions] ON INSERT [dbo].[RolePermissions] ([ID], [RoleID], [PermissionID]) VALUES (516, 3, 23)
INSERT [dbo].[RolePermissions] ([ID], [RoleID], [PermissionID]) VALUES (517, 3, 24)
INSERT [dbo].[RolePermissions] ([ID], [RoleID], [PermissionID]) VALUES (518, 4, 38)
INSERT [dbo].[RolePermissions] ([ID], [RoleID], [PermissionID]) VALUES (519, 4, 46)
INSERT [dbo].[RolePermissions] ([ID], [RoleID], [PermissionID]) VALUES (535, 1, 2)
INSERT [dbo].[RolePermissions] ([ID], [RoleID], [PermissionID]) VALUES (536, 1, 14)
INSERT [dbo].[RolePermissions] ([ID], [RoleID], [PermissionID]) VALUES (537, 1, 17)
INSERT [dbo].[RolePermissions] ([ID], [RoleID], [PermissionID]) VALUES (538, 1, 22)
INSERT [dbo].[RolePermissions] ([ID], [RoleID], [PermissionID]) VALUES (539, 1, 23)
INSERT [dbo].[RolePermissions] ([ID], [RoleID], [PermissionID]) VALUES (540, 1, 24)
INSERT [dbo].[RolePermissions] ([ID], [RoleID], [PermissionID]) VALUES (541, 1, 38)
INSERT [dbo].[RolePermissions] ([ID], [RoleID], [PermissionID]) VALUES (542, 1, 46)
INSERT [dbo].[RolePermissions] ([ID], [RoleID], [PermissionID]) VALUES (543, 1, 55)
INSERT [dbo].[RolePermissions] ([ID], [RoleID], [PermissionID]) VALUES (544, 1, 56)
INSERT [dbo].[RolePermissions] ([ID], [RoleID], [PermissionID]) VALUES (552, 5, 49)
INSERT [dbo].[RolePermissions] ([ID], [RoleID], [PermissionID]) VALUES (553, 2, 22)
INSERT [dbo].[RolePermissions] ([ID], [RoleID], [PermissionID]) VALUES (554, 2, 23)
INSERT [dbo].[RolePermissions] ([ID], [RoleID], [PermissionID]) VALUES (555, 2, 38)
SET IDENTITY_INSERT [dbo].[RolePermissions] OFF
SET IDENTITY_INSERT [dbo].[Roles] ON INSERT [dbo].[Roles] ([ID], [Name], [Remark]) VALUES (1, N'系统管理员', NULL)
INSERT [dbo].[Roles] ([ID], [Name], [Remark]) VALUES (2, N'人事主任', NULL)
INSERT [dbo].[Roles] ([ID], [Name], [Remark]) VALUES (3, N'教务主任', NULL)
INSERT [dbo].[Roles] ([ID], [Name], [Remark]) VALUES (4, N'教师', NULL)
INSERT [dbo].[Roles] ([ID], [Name], [Remark]) VALUES (5, N'学生', NULL)
SET IDENTITY_INSERT [dbo].[Roles] OFF
SET IDENTITY_INSERT [dbo].[UserInfos] ON INSERT [dbo].[UserInfos] ([ID], [Name], [RoleID], [Account], [Pwd], [Sex], [Hobby], [Photo], [Remark]) VALUES (3, N'学院信息中心-彭主任', 1, N'admin', N'admin', 1, N'篮球,羽毛球', N'1.jpg', NULL)
INSERT [dbo].[UserInfos] ([ID], [Name], [RoleID], [Account], [Pwd], [Sex], [Hobby], [Photo], [Remark]) VALUES (10, N'学院人事处-尹主任', 2, N'yin', N'123', 1, N'游泳', N'2.jpg', N'很好')
INSERT [dbo].[UserInfos] ([ID], [Name], [RoleID], [Account], [Pwd], [Sex], [Hobby], [Photo], [Remark]) VALUES (12, N'学院教务处-李主任', 3, N'li', N'123', 0, N'跳舞', N'3.jpg', NULL)
INSERT [dbo].[UserInfos] ([ID], [Name], [RoleID], [Account], [Pwd], [Sex], [Hobby], [Photo], [Remark]) VALUES (14, N'胡瑶老师', 4, N'huyao', N'123', 0, N'跳舞', N'4.jpg', NULL)
INSERT [dbo].[UserInfos] ([ID], [Name], [RoleID], [Account], [Pwd], [Sex], [Hobby], [Photo], [Remark]) VALUES (15, N'韩冬敏老师', 4, N'handm', N'123', 0, N'唱歌', N'1.jpg', N'很靠谱')
INSERT [dbo].[UserInfos] ([ID], [Name], [RoleID], [Account], [Pwd], [Sex], [Hobby], [Photo], [Remark]) VALUES (20, N'全园园同学', 5, N'qyy', N'123', 0, N'健身', N'2.jpg', NULL)
INSERT [dbo].[UserInfos] ([ID], [Name], [RoleID], [Account], [Pwd], [Sex], [Hobby], [Photo], [Remark]) VALUES (21, N'易紫莹同学', 5, N'yizy', N'123', 0, N'演讲', N'3.jpg', NULL)
SET IDENTITY_INSERT [dbo].[UserInfos] OFF
ALTER TABLE [dbo].[RolePermissions]  WITH CHECK ADD  CONSTRAINT [FK_Role_Permissions_Permissions] FOREIGN KEY([PermissionID])
REFERENCES [dbo].[Permissions] ([ID])
ON DELETE CASCADE
GO
ALTER TABLE [dbo].[RolePermissions] CHECK CONSTRAINT [FK_Role_Permissions_Permissions]
GO
ALTER TABLE [dbo].[RolePermissions]  WITH CHECK ADD  CONSTRAINT [FK_Role_Permissions_Roles] FOREIGN KEY([RoleID])
REFERENCES [dbo].[Roles] ([ID])
GO
ALTER TABLE [dbo].[RolePermissions] CHECK CONSTRAINT [FK_Role_Permissions_Roles]
GO
ALTER TABLE [dbo].[UserInfos]  WITH CHECK ADD  CONSTRAINT [FK_UserInfos_Roles] FOREIGN KEY([RoleID])
REFERENCES [dbo].[Roles] ([ID])
GO
ALTER TABLE [dbo].[UserInfos] CHECK CONSTRAINT [FK_UserInfos_Roles]
GO
/****** Object:  StoredProcedure [dbo].[cp_testClass_select_byTestID]    Script Date: 2020/6/2 23:51:01 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE proc [dbo].[cp_testClass_select_byTestID]
(@testID int
)
as
select c.ID as ClassInfoID,c.Name as ClassInfoName,ct.ID,ct.TestID,ct.Status,ct.StartTime,ct.EndTime,ct.Remark from  ClassInfos c left join (select * from Test_ClassInfos where TestID= @testID) ct
on c.ID=ct.ClassInfoID
GO
USE [master]
GO
ALTER DATABASE [RbacDB] SET  READ_WRITE
GO

数据库以Roles为例

控制器代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using Com.Yan.Page.Models;
namespace Com.Yan.Page.Controllers
{public class RolesController : Controller{RbacDBEntities db = new RbacDBEntities();// GET: Rolespublic ActionResult Index(string name="", int PageIndex=1,int PageSize=10){var RowCount = db.Roles.Where(p => p.Name.Contains(name)).Count(); //总条数var PageCount = Math.Ceiling(RowCount * 1.0 / PageSize);  //总页数//根据页码每次条数、姓名查询需要的数据var Roles = db.Roles.Where(p=> p.Name.Contains(name)).OrderBy(p => p.ID).Skip(PageSize * (PageIndex - 1)).Take(PageSize).ToList();ViewBag.pageCount = PageCount; //传值视图总页数ViewBag.PageIndex = PageIndex; //传值视图页数ViewBag.name = name; ViewBag.pageSize = PageSize; //传值视图条数return View(Roles);}}
}

视图代码

@{ViewBag.Title = "Index";
}
@using Com.Yan.Page.Models
@model List<Role><div style="display:flex;justify-content:space-between"><div class="btn-group"><button type="button" class="btn btn-default">新增</button><button type="button" class="btn btn-default">删除</button></div><div class="input-group"><label>名称</label><input type="text"  id="txtCondName" value="@ViewBag.name" /><input type="button"  id="btnSearch" value="搜索" onclick="page(1);" /></div>
</div>
<table class="table table-bordered table-hover"><thead><tr><th>编号</th><th>名称</th><th>备注</th></tr></thead><tbody>@foreach (var item in Model){<tr><td>@item.ID</td><td>@item.Name</td><td>@item.Remark</td></tr>}</tbody>
</table>
<nav aria-label="Page navigation" style="display:flex;justify-content:space-between"><ul class="pagination"><li><a href="#">共10页,第<input type="text" value="1" id="pageIndex" width="100" />页,每页显示<select id="pageSize" onchange="page(1);">@{var pageIndexs = new List<int> { 5, 10, 20, 50, 100 };}@foreach (var item in pageIndexs){if (@ViewBag.pageSize == @item){<option value="@item" selected="selected">@item</option>}else{<option value="@item">@item</option>}}</select>条</a></li></ul><ul class="pagination"><li><a href="javascript:page(1);">首页</a></li>@if (@ViewBag.PageIndex > 1){<li><a href="javascript:page(@ViewBag.PageIndex-1)">上页</a></li>}else{<li class="disabled"><a href="javascript:page(@ViewBag.PageIndex-1)">上页</a></li>}@if (@ViewBag.PageIndex < ViewBag.pageCount){<li><a href="javascript:page(@ViewBag.PageIndex+1)">下页</a></li>}else{<li class="disabled"><a href="javascript:page(@ViewBag.PageIndex+1)">下页</a></li>}<li><a href="javascript:page(@ViewBag.pageCount)">末页</a></li><li><input type="button" value="go" onclick="go();" /></li></ul>
</nav>
@section scripts{<script>function page(pageIndex) {var pageSize = $("#pageSize").val();var name = $("#txtCondName").val();window.location.href = "/roles/index?pageindex=" + pageIndex + "&pageSize=" + pageSize + "&name=" + name }function go() {var pageIndex = $("#pageIndex").val();page(pageIndex);}</script>}

asp.net MVC使用EF框架进行分页讲解相关推荐

  1. 基于ASP.NET MVC的ABP框架入门学习教程

    为什么使用ABP 我们近几年陆续开发了一些Web应用和桌面应用,需求或简单或复杂,实现或优雅或丑陋.一个基本的事实是:我们只是积累了一些经验或提高了对,NET的熟悉程度. 随着软件开发经验的不断增加, ...

  2. 分享一个点赞超过100的漂亮ASP.NET MVC蓝色界面框架

    从 陈贞宝 博客中看到一个MVC模板感觉特别漂亮就尝试着分离出来,直接拿来用啦,直接拷贝到自己的常用的代码库里收藏起来,地址是http://www.cnblogs.com/baihmpgy/p/381 ...

  3. 使用Ef框架进行分页..EF模糊查询..EF多表内连接查询

    先来DAL层代码..稍后解释... public List<Staff> Getstaff(string DepId,string staffname,DateTime date ,int ...

  4. asp.net MVC的EF与easyui DataGrid数据绑定

    页面代码 @{Layout = null; }<!DOCTYPE html><html> <head><meta name="viewport&qu ...

  5. 在mvc与EF框架环境下实现的分业查询笔记

    分页查询 我们在浏览很多网页的时候,由于数据太多,很多时候不能放在一个页面上,此时就需要分页功能. 效果如下: 环境 一库 一表 实现方法 函数Math.Ceiling,求大于该值的最小整数 控制器代 ...

  6. EF-使用EF框架进行分页

    /// <summary>/// 通过卡号来查询用户表,分页/// </summary>/// <param name="cardNo">< ...

  7. ASP.NET MVC+EF框架+EasyUI实现权限管理(附源码)

    前言目录 前言:时间很快,已经快到春节的时间了,这段时间由于生病,博客基本没更新,所以今天写一下我们做的一个项目吧,是对权限的基本操作的操作,代码也就不怎么说了,直接上传源码和图片展示,下面我们直接进 ...

  8. asp.net(mvc) 框架

    1.NFine mvc+ef 2.Grove orm架构 3.NHibernate orm 4.NBear 5.petshop 6.Membership 7.Brnshop 网上商城 8.cms快速开 ...

  9. ASP.NET MVC 企业级实战 —— 创建用户权限管理范例程序(三)

    上一篇,主要讲解了模型的创建和利用Entity Framework来操作数据库,这篇我们会讲解如何创建控制器和视图. 由于最近很多网友反馈在VS 2012 无法安装NBlock框架模版,故再次声明,N ...

最新文章

  1. mysql恢复数据的步骤_MySQL备份恢复数据的一般步骤
  2. 19 Error handling and Go go语言错误处理
  3. mysql的基本数据类型_mysql基本数据类型(mysql学习笔记三)
  4. COM编程之四 引用计数
  5. 你必须知道的23个最有用的Elasticseaerch检索技巧
  6. 如何在管理员页面查看知识星球活跃度和更多明细
  7. 面试官:为什么 Spring Boot 的 jar 可以直接运行
  8. 机器人技术大提升:NVIDIA为构建自主机器统一平台树立里程碑
  9. 1123. Is It a Complete AVL Tree (30)
  10. C++——构建单链表的方法
  11. pythonjava哪个好学_Python和Java哪个好学?没基础学python
  12. Java Web学习总结(16)——JSP的九个内置对象
  13. Visual Studio开发工具(5):VS2010 精美壁纸,总有一款适合你!
  14. 无效的变量名c语言,变量方法用法 _C语言-w3school教程
  15. SAP中生产返工中单独的作业返冲处理分析测试
  16. 徒留标点暧昧不明的微笑-转自www.97w.com
  17. proftpd的一些简单配置
  18. 数据挖掘中的机器学习
  19. Reflected File Download Attack
  20. CHAPTER 18 Semantic Role Labeling

热门文章

  1. Mac在线视频下载工具:PullTube
  2. 51单片机的c语言外部扩展,教你给51单片机扩展片外RAM
  3. Disk Diet for mac (好用的磁盘清理软件)
  4. Excel2007 不能清除剪贴板
  5. Linux常用命令大全(史上最全)建议收藏!
  6. vm眼影真的好用吗_VM大理石眼影盘,是颜值党的真爱~
  7. hls.js下载m3u8视频播放hls.js
  8. duck typing java_進一步思考Duck typing
  9. crh寄存器_CRL,CRH寄存器
  10. Linux——DHCP篇