最近的学习了一下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. 第十二节:WebApi自动生成在线Api文档的两种方式

    一. WebApi自带生成api文档 1. 说明 通过观察,发现WebApi项目中Area文件夹下有一个HelpPage文件夹,如下图,该文件夹就是WebApi自带的生成Api的方式,如果该文件夹没了 ...

  2. python ftp批量上传文件下载文件

    # encoding:utf-8 from ftplib import FTPimport osimport sys _XFER_FILE = 'FILE'_XFER_DIR = 'DIR' clas ...

  3. java基于redis事务的秒杀实现

    package com.vian.user.service; import org.junit.Test; import org.springframework.util.CollectionUtil ...

  4. 关于dfs

    DFS 关于dfs,我的理解就是深度搜索,找到所有与入口相连的路径,可以用于迷宫求出口,利用递归的思想,进行搜索返回所有值. 比如,给你两个值分别表示迷宫的长和宽,迷宫有一个入口,一个出口,判断能否从 ...

  5. pandas.read_csv() 报错 OSError: Initializing from file failed,报错原因分析和解决方法

    今天调用pandas读取csv文件时,突然报错“ OSError: Initializing from file failed ”,我是有点奇怪的,以前用的好好的,read_csv(path)方法不是 ...

  6. springboot-文件上传xls及POI操作Excel

    1.pom导入依赖文件 <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-o ...

  7. 双目立体匹配——归一化互相关(NCC)

    归一化相关性,normalization cross-correlation,因此简称NCC,下文中笔者将用NCC来代替这冗长的名称. NCC,顾名思义,就是用于归一化待匹配目标之间的相关程度,注意这 ...

  8. HDU - 1050

    wa了5遍?!! (1)前4遍,思路没简化,企图模拟整个过程,但是调用sort函数时由于没有把奇数的屋子和偶数的屋子统一,排序出了问题. 思路:遍历n段,每次只扫未被标记过的一段,ans++并且从该段 ...

  9. 网站robots.txt & sitemap.xml

    1. 如何查看网站的robots.txt 网址/robots.txt, 比如小米  https://www.mi.com/robots.txt sitemap.xml

  10. 共有49款Windows GUI开发框架开源软件 【转】

    源文 : http://www.oschina.net/project/tag/178/gui?lang=36&os=0&sort=view&p=1 桌面应用开发引擎 Allo ...