最近的学习了一下mvc,现在做一个mvc的CRUD例子。

1、创建实体模型

2、创建一个UserInfo的控制器

3、查询数据

code

 public IList<UserInfo> userInfoList { get; set; }
DemoEntities demoEntities = new DemoEntities();//创建EF上下文
public ActionResult Index()
{
userInfoList = demoEntities.Set<UserInfo>().ToList();
ViewBag.userInfoList = userInfoList;
return View();
}

view

 @{
Layout = null;
}
@using MVCCRUDAPI.Models;
<!DOCTYPE html> <html>
<head>
<meta name="viewport" content="width=device-width" />
<title>Index</title>
</head>
<body>
<table>
<tr><td>用户名</td><td>密码</td><td>年龄</td><td>邮箱</td><td>备注</td><td>添加时间</td><td>操作</td></tr>
@foreach (UserInfo userInfo in ViewBag.userInfoList)
{
<tr><td>@userInfo.UserName</td><td>@userInfo.UserPwd</td><td>@userInfo.Age<td>@userInfo.Email</td><td>@userInfo.Remark</td><td>@userInfo.RegTime</td><td><a href="/UserInfo/Edit/@userInfo.Id">编辑</a> <a href="javascript:void(0)" onclick="del(@userInfo.Id)">删除</a></td></tr>
}
</table>
</body>
</html>

数据显示

3、添加数据

code

 public ActionResult Add()
{
return View();
}
[HttpPost]
public ActionResult Add(UserInfo userInfo)
{
if (!ModelState.IsValid)
{
return Content("error");
}
userInfo.RegTime = DateTime.Now;
demoEntities.UserInfo.Add(userInfo);
demoEntities.SaveChanges();
return Content("ok");
}

view

 @{
Layout = null;
}
@model MVCCRUDAPI.Models.UserInfo
<!DOCTYPE html> <html>
<head>
<meta name="viewport" content="width=device-width" />
<title>添加</title>
<script src="~/Scripts/jquery-1.8.2.js"></script>
<script src="~/Scripts/jquery.unobtrusive-ajax.min.js"></script>
<script src="~/Scripts/jquery.validate.min.js"></script>
<script src="~/Scripts/jquery.validate.unobtrusive.min.js"></script>
<script>
function success(data) {
if (data == "ok") {
alert("添加成功");
window.location.href = "/UserInfo/Index";
}
else if (data == "error") {
alert("参数提交失败");
}
}
</script>
</head>
<body>
<div>
@using (Ajax.BeginForm("add", "UserInfo", new AjaxOptions { HttpMethod = "post", OnSuccess = "success" }))
{
<div>
@Html.LabelFor(u => u.UserName)
</div>
<div>
@Html.TextBoxFor(u => u.UserName) </div>
<div>
@Html.LabelFor(u => u.UserPwd)
</div>
<div>
@Html.PasswordFor(u => u.UserPwd) </div>
<div>
@Html.LabelFor(u => u.Email)
</div>
<div>
@Html.TextBoxFor(u => u.Email) </div>
<div>
@Html.LabelFor(u => u.Age)
</div>
<div>
@Html.TextBoxFor(u => u.Age) </div>
<div>
@Html.LabelFor(u => u.Remark)
</div>
<div>
@Html.TextAreaFor(u => u.Remark) </div>
<br />
<input type="submit" value="添加" /> <a href="/UserInfo/Index">返回</a>
}
</div>
</body>
</html>

4、更新数据

code

 UserInfo userInfo = new UserInfo();
public ActionResult Edit(int id)
{
userInfo = demoEntities.Set<UserInfo>().Where(u => u.Id == id).FirstOrDefault();
return View(userInfo);
}
[HttpPost]
public ActionResult Edit(UserInfo userInfo)
{
if (!ModelState.IsValid)
{
return Content("error");
}
demoEntities.UserInfo.Attach(userInfo);//对象添加到EF管理容器中
demoEntities.Entry(userInfo).State = EntityState.Modified;
demoEntities.SaveChanges();
return Content("ok");
}

veiw

 @model MVCCRUDAPI.Models.UserInfo

 @{
Layout = null;
} <!DOCTYPE html> <html>
<head>
<meta name="viewport" content="width=device-width" />
<title>编辑</title>
</head>
<body>
<script src="~/Scripts/jquery-1.8.2.js"></script>
<script src="~/Scripts/jquery.unobtrusive-ajax.min.js"></script>
<script src="~/Scripts/jquery.validate.min.js"></script>
<script src="~/Scripts/jquery.validate.unobtrusive.min.js"></script>
<script>
function success(data) {
if (data == "ok") {
alert("编辑成功");
window.location.href = "/UserInfo/Index";
}
else if (data == "error") {
alert("参数提交失败");
}
}
</script>
@using (Ajax.BeginForm("Edit", "UserInfo", new AjaxOptions { OnSuccess = "success", HttpMethod = "post" }))
{
@Html.HiddenFor(model => model.Id) <div>
@Html.LabelFor(model => model.UserName)
</div>
<div>
@Html.EditorFor(model => model.UserName) </div>
<div>
@Html.LabelFor(model => model.UserPwd)
</div>
<div>
@Html.EditorFor(model => model.UserPwd) </div>
<div>
@Html.LabelFor(model => model.Age)
</div>
<div>
@Html.EditorFor(model => model.Age) </div>
<div>
@Html.LabelFor(model => model.Email)
</div>
<div>
@Html.EditorFor(model => model.Email) </div>
<div>
@Html.LabelFor(model => model.Remark)
</div>
<div>
@Html.TextAreaFor(u => u.Remark) </div>
@Html.HiddenFor(model => model.RegTime)
<p>
<input type="submit" value="保存" /> <a href="/UserInfo/Index">返回</a>
</p>
}
</body>
</html>

5、删除数据

code

 public ActionResult Delete(int id)
{
userInfo.Id = id;
demoEntities.UserInfo.Attach(userInfo);//对象添加到EF管理容器中
demoEntities.Entry(userInfo).State = EntityState.Deleted;
demoEntities.SaveChanges();
return Content("ok");
}

view 在index页面加入下面的js代码即可

 <script>
function del(id) {
if (confirm("确定删除吗?")) {
$.post("/UserInfo/Delete/" + id, null,
function success(data) {
if (data == "ok") {
alert("删除成功");
window.location.href = "/UserInfo/Index";
}
else {
alert("参数错误");
}
})
}
}
</script>

MVC简单的增删改查的更多相关文章

  1. 初试KONCKOUT+WEBAPI简单实现增删改查

    初试KONCKOUT+WEBAPI简单实现增删改查 前言 konckout.js本人也是刚刚接触,也是初学,本文的目的是使用ko和asp.net mvc4 webapi来实现一个简单增删改查操作.Kn ...

  2. MVC3.0+knockout.js+Ajax 实现简单的增删改查

    MVC3.0+knockout.js+Ajax 实现简单的增删改查 自从到北京入职以来就再也没有接触MVC,很多都已经淡忘了,最近一直在看knockout.js 和webAPI,本来打算采用MVC+k ...

  3. SpringMVC之简单的增删改查示例(SSM整合)

    本篇文章主要介绍了SpringMVC之简单的增删改查示例(SSM整合),这个例子是基于SpringMVC+Spring+Mybatis实现的.有兴趣的可以了解一下. 虽然已经在做关于SpringMVC ...

  4. springmvc+spring3+hibernate4框架简单整合,简单实现增删改查功能

    转自:https://blog.csdn.net/thinkingcao/article/details/52472252 C 所用到的jar包     数据库表 数据库表就不用教大家了,一张表,很简 ...

  5. salesforce 零基础学习(五十一)使用 Salesforce.com SOAP API 实现用户登录以及简单的增删改查(JAVA访问salesforce)

    此篇请参看:https://resources.docs.salesforce.com/202/latest/en-us/sfdc/pdf/salesforce_developer_environme ...

  6. MyBatis学习--简单的增删改查

    jdbc程序 在学习MyBatis的时候先简单了解下JDBC编程的方式,我们以一个简单的查询为例,使用JDBC编程,如下: Public static void main(String[] args) ...

  7. 通过JDBC进行简单的增删改查

    通过JDBC进行简单的增删改查(以MySQL为例) 目录 前言:什么是JDBC 一.准备工作(一):MySQL安装配置和基础学习 二.准备工作(二):下载数据库对应的jar包并导入 三.JDBC基本操 ...

  8. MyBatis简单的增删改查以及简单的分页查询实现

    MyBatis简单的增删改查以及简单的分页查询实现 <? xml version="1.0" encoding="UTF-8"? > <!DO ...

  9. python3.6 使用 pymysql 连接 Mysql 数据库及 简单的增删改查操作

    1.通过 pip 安装 pymysql 进入 cmd  输入  pip install pymysql   回车等待安装完成: 安装完成后出现如图相关信息,表示安装成功. 2.测试连接 import ...

随机推荐

  1. zipline框架--简介

    Zipline is a Pythonic algorithmic trading library. It is an event-driven system for backtesting. Zip ...

  2. 【bzoj 2159】Crash 的文明世界

    Description Crash小朋友最近迷上了一款游戏——文明5(Civilization V).在这个游戏中,玩家可以建立和发展自己的国家,通过外交和别的国家交流,或是通过战争征服别的国家.现在 ...

  3. luogu P3810 三维偏序(陌上花开)cdq分治

    题目链接 思路 对一维排序后,使用$cdq$分治,以类似归并排序的方法处理的二维,对于满足$a[i].b \leq a[j].b$的点对,用树状数组维护$a[i].c$的数量.当遇到$a[i].b&g ...

  4. 2018-2019 20165237网络对抗 Exp5 MSF基础应用

    2018-2019 20165237网络对抗 Exp5 MSF基础应用 实验目标 本实践目标是掌握metasploit的基本应用方式,重点常用的三种攻击方式的思路.具体需要完成: 一个主动攻击实践,如 ...

  5. [经验交流] 影响 kubernetes 稳定性的因素

    使用k8s已有近一年的时间,版本从1.2到1.5.1.6.1.7,期间出现并解决了不少问题,下面是我总结的影响k8s集群稳定性的因素: 1. 安装环境 *kubelet版本最好与kube-apiser ...

  6. Tomcat实现反向代理

    实验环境搭建: web server             Director: 192.168.11.131(host-only)     192.168.1.114(桥接)   安装好Apache ...

  7. Mybatis 常用注解

    Mybatis常用注解对应的目标和标签如表所示: 注解 目标 对应的XML标签 @CacheNamespace 类 <cache> @CacheNamespaceRef 类 <cac ...

  8. Mongodb 安装错误汇总

    Failed to restart mongod.service: Unit mongod.service not found. 解决方法: Most probably unit mongodb.se ...

  9. WPF 10天修炼 第九天 - 几何图形

    几何图形 使用LineGeometry.RectangleGeometry.EllipseGeometry对象分别绘制直线.矩形.椭圆. 使用GeometryGroup可以绘制组合图形. <Wi ...

  10. Spring Cloud配置中心搭建(集成Git)

    1. 在Github(或其他)创建配置中心仓库bounter-config-repo,然后在仓库创建两个配置文件:simon.properties.susan.properties,链接如下: htt ...