1:创建MVC项目

2:添加EF数据(这里选择DataBaseFirst模式)

3:添加控制器

3.1.1 创建列表页面

3.1.2 html页面

@using MvcApplication1
@{
ViewBag.Title = "Index";
} <div>
<table>
<tr>
<th>编号</th>
<th>用户名</th>
<th>密码</th>
<th>详情</th>
</tr>
@{
foreach (var item in (IQueryable<TB_User>)ViewData["UserInfoList"])
{
<tr>
<td>@item.UserID</td>
<td>@item.UserName</td>
<td>@item.Password</td>
<td><a href="/UserInfo/ShowDetail?id=@item.UserID">详情</a></td>
</tr>
}
}
</table>
</div>

3.2.1 详情页面

3.2.2 html页面

@using MvcApplication1
@{
ViewBag.Title = "ShowDetail";
} <h2>ShowDetail</h2>
<div>
@{
TB_User item = (TB_User)ViewData["UserInfo"]; <table>
<tr><td>用户ID </td> <td>@item.UserID </td></tr>
<tr><td>用户的登录ID </td> <td>@item.UserLoginID </td></tr>
<tr><td>密码 </td> <td>@item.Password </td></tr>
<tr><td>用户代码 </td> <td>@item.UserCode </td></tr>
<tr><td>用户名称 </td> <td>@item.UserName </td></tr>
<tr><td>用户类型 </td> <td>@item.UserType </td></tr>
<tr><td>电子邮件 </td> <td>@item.Email </td></tr>
<tr><td>移动电话 </td> <td>@item.MobilePhone </td></tr>
<tr><td>商务电话 </td> <td>@item.BusinessTelephone </td></tr>
<tr><td>出生日期 </td> <td>@item.BirthDay </td></tr>
<tr><td>性别 </td> <td>@item.Gender </td></tr>
<tr><td>国籍 </td> <td>@item.Nationality </td></tr>
<tr><td>籍贯 </td> <td>@item.NativePlace </td></tr>
<tr><td>纸张类型 </td> <td>@item.PaperType </td></tr>
<tr><td>论文数 </td> <td>@item.PaperNumber </td></tr>
<tr><td>加入日期 </td> <td>@item.JoinDate </td></tr>
<tr><td>离开日期 </td> <td>@item.LeaveDate </td></tr>
<tr><td>教育类 </td> <td>@item.Education </td></tr>
<tr><td>婚姻状况 </td> <td>@item.MaritalStatus </td></tr>
<tr><td>银行 </td> <td>@item.Bank </td></tr>
<tr><td>银行账户 </td> <td>@item.BankAccount </td></tr>
<tr><td>现状 </td> <td>@item.Status </td></tr>
<tr><td>造物主 </td> <td>@item.Creator </td></tr>
<tr><td>创建日期 </td> <td>@item.CreateDate </td></tr>
<tr><td>更新用户 </td> <td>@item.UpdateUser </td></tr>
<tr><td>更新日期 </td> <td>@item.UpdateDate </td></tr>
<tr><td>EAS用户编码 </td> <td>@item.Eas_UserCode </td></tr>
<tr><td>EAS的用户名 </td> <td>@item.Eas_UserName </td></tr>
<tr><td>备注 </td> <td>@item.Rank </td></tr> </table>
}
</div>

3.3.1 删除页面

3.3.2 html页面

@using MvcApplication1
@using MvcApplication1.Common
@{
ViewBag.Title = "Index";
}
<script type="text/javascript">
window.onload = function () {
var deleteClass = document.getElementsByClassName("deleteClass");
var deleteLength = deleteClass.length;
for (var i = ; i < deleteLength; i++) {
deleteClass[i].onclick = function () {
if (!confirm("确认要删除吗?")) {
return false;
}
}
}
}
</script>
<link href="~/Css/pageBarStyle.css" rel="stylesheet" />
<div>
<table>
<tr>
<th>编号</th>
<th>用户名</th>
<th>密码</th>
<th>详情</th>
</tr>
@{
foreach (var item in (IQueryable<TB_User>)ViewData["UserInfoList"])
{
<tr>
<td>@item.UserID</td>
<td>@item.UserName</td>
<td>@item.Password</td>
<td>
<a href="/UserInfo/ShowDetail?id=@item.UserID">详情</a>
<a href="/UserInfo/Delete?id=@item.UserID" class="deleteClass">删除</a>
</td>
</tr>
}
}
<tr>
<td>
@PageBarHelper.GetPageBar((int)ViewData["pageIndex"], (int)ViewData["pageCount"],)
</td>
</tr>
</table>
<hr /> </div>

3.4.1 分页功能

效果图:

整体代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc; namespace MvcApplication1.Controllers
{
public class UserInfoController : Controller
{
//
// GET: /UserInfo/
ZLDC_CostControl_TestEntities db = new ZLDC_CostControl_TestEntities();
public ActionResult Index()
{
//var userInfoList = db.TB_User.Where<TB_User>(u => u.Status==1);
//ViewData["UserInfoList"] = userInfoList;
//return View(); #region 分页
int pageIndex;//当前页数
if (!int.TryParse(Request["pageIndex"],out pageIndex))
{
pageIndex = ;
}
int recordCount;//总记录数
recordCount = db.TB_User.Where<TB_User>(u => u.Status == ).Count();
int pageSize;//每页多少条
pageSize=;
int pageCount;//总的页数
pageCount = Convert.ToInt32(Math.Ceiling((double)(recordCount / pageSize)));
pageIndex = pageIndex < ? : pageIndex;
pageIndex = pageIndex > pageCount ? pageCount : pageIndex;
var userInfoList = db.TB_User.Where<TB_User>(u => u.Status == ).OrderByDescending<TB_User, DateTime>(u => (DateTime)u.CreateDate).Skip<TB_User>((pageIndex-)*pageSize).Take<TB_User>(pageSize);
ViewData["UserInfoList"] = userInfoList;
ViewData["pageIndex"] = pageIndex;
ViewData["pageCount"] = pageCount;
return View();
#endregion
}
public ActionResult ShowDetail()
{
string userID =Request["id"];
var userInfo = db.TB_User.Where(u => u.UserID == userID).FirstOrDefault();
ViewData["UserInfo"] = userInfo;
return View();
}
public ActionResult Delete()
{
string userID = Request["id"];
var userInfo = db.TB_User.Where(u => u.UserID == userID).FirstOrDefault();
if (userInfo != null)
{
userInfo.Status = ;
db.Entry<TB_User>(userInfo).State = System.Data.EntityState.Modified;
if (db.SaveChanges() > )
{
return RedirectToAction("Index");
}
else {
return Content("删除失败! ");
}
}
else {
return Content("删除失败! 要删除的数据不存在!");
}
}
}
}

UserInfoController

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Web;
using System.Web.Mvc; namespace MvcApplication1.Common
{
public partial class PageBarHelper
{
/// <summary>
/// 获取底部数字页码显示条
/// </summary>
/// <param name="pageIndex">当前页码值</param>
/// <param name="pageCount">总的页码值</param>
/// <param name="pageShowCount">需要显示上下几页页码</param>
/// <returns></returns>
public static MvcHtmlString GetPageBar(int pageIndex, int pageCount, int pageShowCount)
{
string pageBarHtml;
//假设每次显示10页数据.pageShowCount=10,一共有18页数据
int start = , end = ;//循环开始页,循环结束页 if (pageIndex <= pageShowCount / && pageCount >= pageShowCount)
{
//当前页码in( 1 2 3) ==== 1 2 3 4 5 6 7 8 9 10
start = ;
end = start + pageShowCount;
}
else if (pageIndex <= pageShowCount / && pageCount < pageShowCount)
{
//当前页码in( 1 2 3) ==== 1 2 3 4 5
start = ;
end = pageCount + ;
}
else if (pageIndex > pageShowCount / && pageIndex + pageShowCount / <= pageCount)
{
//当前页码in(8) ==== 3 4 5 6 7 8 9 10 11 12
start = pageIndex - pageShowCount / ;
end = start + pageShowCount;
}
else if (pageIndex > pageShowCount / && pageIndex + pageShowCount / > pageCount)
{
//当前页码in(16) ==== 9 10 11 12 13 14 15 16 17 18
start = pageCount - pageShowCount > ? pageCount - pageShowCount + : ;
end = pageCount + ;
}
StringBuilder sb = new StringBuilder(); if (pageIndex != )
{
sb.AppendFormat(@"<a href='?pageIndex={0}'>上一页</a>", pageIndex - ); } //循环遍历
for (int i = start; i < end; i++)
{ if (i == pageIndex)
{
sb.AppendFormat(@"<a href='#'>{0}</a>", i);
}
else
{
sb.AppendFormat(@"<a href='?pageIndex={0}'>{0}</a>", i);
} }
if (pageIndex != pageCount)
{
sb.AppendFormat(@"<a href='?pageIndex={0}'>下一页</a>", pageIndex + ); }
pageBarHtml = sb.ToString();
return MvcHtmlString.Create(sb.ToString());
} }
}

PageBarHelper

@using MvcApplication1
@using MvcApplication1.Common
@{
ViewBag.Title = "Index";
}
<script type="text/javascript">
window.onload = function () {
var deleteClass = document.getElementsByClassName("deleteClass");
var deleteLength = deleteClass.length;
for (var i = ; i < deleteLength; i++) {
deleteClass[i].onclick = function () {
if (!confirm("确认要删除吗?")) {
return false;
}
}
}
}
</script>
<link href="~/Css/pageBarStyle.css" rel="stylesheet" />
<div>
<table>
<tr>
<th>编号</th>
<th>用户名</th>
<th>密码</th>
<th>详情</th>
</tr>
@{
foreach (var item in (IQueryable<TB_User>)ViewData["UserInfoList"])
{
<tr>
<td>@item.UserID</td>
<td>@item.UserName</td>
<td>@item.Password</td>
<td>
<a href="/UserInfo/ShowDetail?id=@item.UserID">详情</a>
<a href="/UserInfo/Delete?id=@item.UserID" class="deleteClass">删除</a>
</td>
</tr>
}
}
<tr>
<td>
@PageBarHelper.GetPageBar((int)ViewData["pageIndex"], (int)ViewData["pageCount"],)
</td>
</tr>
</table>
<hr /> </div>

Index.cshtml

步步为营-93-MVC+EF简单实例的更多相关文章

  1. 【MVC 2】MVC+EF框架结构实例:注册ID号验证

    导读:本篇博客,将通过一个实例,详细介绍MVC+EF的应用.原理性的东西或者说是进一步的解耦和,请看博客: [框架结构 3]MVC+EF实体框架-原理解析.在这里,仅用MVC框架和一个EF生成的Mod ...

  2. EasyUI+MVC+EF简单用户管理Demo(问题及解决)

    写在前面 iframe-src EntityFramework版本 connectionStrings View.Action.页面跳转 EasyUI中DataGrid绑定 新增.修改和删除数据 效果 ...

  3. ASP.NET MVC+EF框架+EasyUI实现权限管理系列(16)-类库架构扩展以及DLL文件生成修改和用户的简单添加

    原文:ASP.NET MVC+EF框架+EasyUI实现权限管理系列(16)-类库架构扩展以及DLL文件生成修改和用户的简单添加 ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇) ...

  4. ASP.NET MVC+EF框架+EasyUI实现权限管理系列(6)- EF上下文实例管理

    原文:ASP.NET MVC+EF框架+EasyUI实现权限管理系列(6)- EF上下文实例管理 ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇)   (1):框架搭建    ( ...

  5. 国产化之路-统信UOS + Nginx + Asp.Net MVC + EF Core 3.1 + 达梦DM8实现简单增删改查操作

    专题目录 国产化之路-统信UOS操作系统安装 国产化之路-国产操作系统安装.net core 3.1 sdk 国产化之路-安装WEB服务器 国产化之路-安装达梦DM8数据库 国产化之路-统信UOS + ...

  6. ASP.NET MVC+EF框架+EasyUI实现权限管理系列(24)-权限组的设计和实现(附源码)(终结)

    ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇)   (1):框架搭建    (2):数据库访问层的设计Demo    (3):面向接口编程   (4 ):业务逻辑层的封装    ...

  7. ASP.NET MVC+EF框架+EasyUI实现权限管理系列(23)-设置角色遗留问题和为权限设置角色以及EasyUI Tabs的使用

    ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇)   (1):框架搭建    (2):数据库访问层的设计Demo    (3):面向接口编程   (4 ):业务逻辑层的封装    ...

  8. ASP.NET MVC+EF框架+EasyUI实现权限管理系列(22)-为用户设置角色

    ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇)   (1):框架搭建    (2):数据库访问层的设计Demo    (3):面向接口编程   (4 ):业务逻辑层的封装    ...

  9. MVC+EF 理解和实现仓储模式和工作单元模式

    MVC+EF 理解和实现仓储模式和工作单元模式 原文:Understanding Repository and Unit of Work Pattern and Implementing Generi ...

随机推荐

  1. 20165231 2017-2018-2 《Java程序设计》第3周学习总结

    教材学习内容总结 对象(Object):存在的具体实体,具有明确的状态和行为 类(Class):具有相同属性和行为的一组对象的集合,用于组合各个对象所共有操作和属性的一种机制 从类看对象:类定义可以视 ...

  2. 【python网络爬虫】之requests相关模块

    python网络爬虫的学习第一步 [python网络爬虫]之0 爬虫与反扒 [python网络爬虫]之一 简单介绍 [python网络爬虫]之二 python uillib库 [python网络爬虫] ...

  3. Tomcat安装7.0.91

    版本升级,JDK 1.7,Tomcat从7.0.73升级到7.0.91 为什么升级?解决安全漏洞! 升级就正常流程,下载*.tar.gz ,解压,改配置. 但碰到神奇的坑: 1.server.xml中 ...

  4. Linux中Grep常用的15个例子【转】

    转自:https://www.aliyun.com/jiaocheng/1390860.html?spm=5176.100033.1.9.6a1e41e8Pdjynm 摘要:Grep命令主要用于从文件 ...

  5. Git使用手册【转】

    转自:https://www.jianshu.com/p/e32a8e7ca93b 目录: Git是什么 基本概念 Git的诞生 Git的安装与配置 创建版本库 Git操作略览 远程仓库:git的杀招 ...

  6. workqueue --最清晰的讲解

    带你入门: 1.INIT_WORK(struct work_struct *work, void (*function)(void *), void *data) 上面一句只是定义了work和work ...

  7. linux系统快捷键

    tab 补全命令    两次tab    列出所有以字符前缀开头的命令 ctrl A    把光标移到命令行开头 ctrl E    把光标移到命令行结尾 ctrl C    强制终止当前的命令 ct ...

  8. Media Query-响应式布局

    做响应式网站的时候,一定要在页面头部加入如下的声明: <meta name="viewport" content="width=device-width, init ...

  9. 抢红包时用到的redis函数

    2018-2-8 10:25:11 星期四 抢红包时经常会用redis(等其他nosql)的原子性函数去限流, 防止抢超, 下边列出一些主要的原子性函数 限制每个人只能抢一次 getSet(): 设置 ...

  10. JS实现多语言方式

    应用场景: 在不同移动平台(IOS,Android)上,建立一套与HTML页面通讯框架:主要业务逻辑使用HTML开发:想支持多语言开发. 动机: 通过主动发消息的方式,在页面完成初始化前,获取当前语言 ...