MVC简单的增删改查

时间:2022-11-11 16:39:50

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

1、创建实体模型

MVC简单的增删改查

2、创建一个UserInfo的控制器

MVC简单的增删改查

MVC简单的增删改查

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>

数据显示

MVC简单的增删改查

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&plus;WEBAPI简单实现增删改查

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

  2. MVC3&period;0&plus;knockout&period;js&plus;Ajax 实现简单的增删改查

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

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

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

  4. springmvc&plus;spring3&plus;hibernate4框架简单整合&comma;简单实现增删改查功能

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

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

    此篇请参看: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&period;6 使用 pymysql 连接 Mysql 数据库及 简单的增删改查操作

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

随机推荐

  1. 个人搜藏小技巧:eclipse 设定proxy,仍不能连网的问题

    有的eclipse在perferences->General->Network connection设定代理后,仍不能连接网络下载jar.解决方法:在eclipse.ini下面加: -Do ...

  2. &lbrack;HTMLDOM&rsqb;onmousedown、onmouseup 以及onclick事件触发顺序

    摘自w3school:http://www.w3school.com.cn/htmldom/dom_events.asp onmousedown.onmouseup 以及 onclick 事件是鼠标点 ...

  3. IOS学习经验总结--来自知乎网友

    转自知乎:http://www.zhihu.com/question/20016551 我当时刚学iOS开发的时候一样的感觉 总想知道原理 内部怎么回事 感觉在像在雾里但是iOS开发就是这样 他是封闭 ...

  4. Android adt v22&period;6&period;2-1085508 自己主动创建 appcompat&lowbar;v7 解决方法,最低版本号2&period;2也不会出现

    Android 开发工具升级到22.6.2在创建project时仅仅要选择的最低版本号低于4.0,就会自己主动生成一个项目appcompat_v7,没创建一个新的项目都会自己主动创建,非常是烦恼... ...

  5. C&num;上传图片和生成缩略图以及图片预览

    因工作需要,上传图片要增加MIME类型验证和生成较小尺寸的图片用于浏览.根据网上代码加以修改做出如下效果图: 前台代码如下: <html xmlns="http://www.w3.or ...

  6. python 调用shell或windows命令

    目前使用到的有两种方式:os.system()和os.popen() import os os.system('cd e:cjx') #调用后返回执行结果状态 如果想获得返回结果,则使用以下方式: i ...

  7. 配置rhel 6&period;4&lpar;64位&rpar;安装使用syslog-ng 3&period;5

    我基本的博客地址是:www.cppblog.com/zdhsoft 相应的CentOS 6.x也就可能使用. 下载地址: 第一步:安装 wget http://www.balabit.com/down ...

  8. MarsEdit快速插入源代码

    开始用MarsEdit来写博文,客户端的,毕竟是要方便的多啊. 遇到的第一个问题就是:MarsEdit没有提供快速插入源代码的工具,而对于我这枚码农而言,这个就有点太杯具了. 简单研究了一下,发现Ma ...

  9. 纯Css绘制三角形箭头三种方法

    在制作网页的过程中少不了绘制类似图片的三角形箭头效果,虽然工程量不大,但是确实麻烦.在学习的过程中,总结了以下三种方法,以及相关的例子. 一.三种绘制三角形箭头方法 1.方法一:利用overflow: ...

  10. python dns查询与DNS传输漏洞查询

    前言: 昨天晚上在看DNS协议,然后想到了 DNS传输漏洞.便想写一个DNS查询与DNS传输漏洞查询 DNS传输漏洞介绍: DNS传输漏洞:若DNS服务器配置不当,可能导致匿名用户获取某个域的所有记录 ...