新的方法(Set<T>)实现mvc的crud
model层的属性为:
public partial class UserInfo
{
public int Uid { get; set; }
public string UName { get; set; }
}
数据上下文类:生成数据
using System;
using System.Data.Entity;
using System.Data.Entity.Infrastructure; public partial class MyContext : DbContext
{
public MyContext()
: base("name=MyContext")
{
} protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
throw new UnintentionalCodeFirstException();
} public DbSet<UserInfo> UserInfo { get; set; } }
controller层: crud是在集合的基础上完成的(实则对集合的crud)
public class UserInfoCrudController : Controller
{
DbContext dbContext = new MyContext(); //由父类指向子类 实例化生成数据库 Set<>方法产生的是一个集合
// GET: /UserInfoCrud/ public ActionResult Index()
{
var list = dbContext.Set<UserInfo>(); return View(list);
} public ActionResult Add()
{
return View();
}
[HttpPost]
public ActionResult Add(UserInfo userInfo)
{
dbContext.Set<UserInfo>().Add(userInfo);
int result = dbContext.SaveChanges();//如果内存中的数据发生了变化,并且希望将这个变化映射到数据库,需要执行这个方法
if (result > )
{
return Redirect(@Url.Action("Index", "UserInfoCrud"));
}
else
{
return Redirect(@Url.Action("Add"));
}
} public ActionResult Edit(int id)
{
ViewData.Model = dbContext.Set<UserInfo>()
.Where(u => u.Uid == id).FirstOrDefault(); return View();
}
[HttpPost]
public ActionResult Edit(UserInfo userInfo)
{
dbContext.Set<UserInfo>().AddOrUpdate(userInfo);
int result = dbContext.SaveChanges();
if (result > )
{
return Redirect(Url.Action("Index"));
}
else
{
return Redirect(Url.Action("Edit", new RouteValueDictionary(new
{
id = userInfo.Uid
})));
} } public ActionResult Remove(int id)
{
var userInfo = dbContext.Set<UserInfo>()
.Where(u => u.Uid == id)
.FirstOrDefault();
dbContext.Set<UserInfo>().Remove(userInfo);
dbContext.SaveChanges(); return Redirect(Url.Action("Index"));
}
}
views层:
(1)数据展示部分
@using model所在 的命名空间
@model IQueryable<t2_EFTest.Models.UserInfo>
@{
Layout = null;
} <!DOCTYPE html> <html>
<head>
<meta name="viewport" content="width=device-width" />
<title>Index</title>
</head>
<body>
<div>
@Html.ActionLink("添加","Add","UserInfoCrud")
<hr/>
<table border="">
<tr>
<th>编号</th>
<th>姓名</th>
<th>修改</th>
<th>删除</th>
</tr>
@foreach (UserInfo userInfo in Model)
{
<tr>
<td>@userInfo.Uid</td>
<td>@userInfo.UName</td>
<td>
@Html.ActionLink("修改","Edit","UserInfoCrud",
new RouteValueDictionary(new {id=@userInfo.Uid}),null)
</td>
<td>
@Html.ActionLink("删除",
"Remove",
"UserInfoCrud",
new RouteValueDictionary(new
{
id=@userInfo.Uid
}),null)
</td>
</tr>
}
</table>
</div>
</body>
</html>
(2)数据添加部分
@model t2_EFTest.Models.UserInfo
@{
Layout = null;
} <!DOCTYPE html> <html>
<head>
<meta name="viewport" content="width=device-width" />
<title>Add</title>
</head>
<body>
<div>
@using (Html.BeginForm("Add", "UserInfoCrud", FormMethod.Post))
{
<span>姓名:</span>
@Html.TextBoxFor(u=>u.UName)
<br/>
<input type="submit" value="添加"/>
}
</div>
</body>
</html>
(3)数据修改部分
@model t2_EFTest.Models.UserInfo
@{
Layout = null;
} <!DOCTYPE html> <html>
<head>
<meta name="viewport" content="width=device-width" />
<title>Edit</title>
</head>
<body>
<div>
@using (Html.BeginForm("Edit", "UserInfoCrud", FormMethod.Post))
{
<span>编号:</span>
@Model.Uid
@Html.HiddenFor(u=>u.Uid)
<br/>
<span>姓名:</span>
@Html.TextBoxFor(u=>u.UName)
<br/>
<input type="submit" value="修改"/>
}
</div>
</body>
</html>
新的方法(Set<T>)实现mvc的crud的更多相关文章
- PHP面向对象_重载新的方法(parent::)
在学习PHP 这种语言中你会发现, PHP中的方法是不能重载的, 所谓的方法重载就是定义相同的方法名,通过“参数的个数“不同或“参数的类型“不 同,来访问我们的相同方法名的不同方法.但是因为PHP是弱 ...
- IIS上部署MVC网站,打开后ExtensionlessUrlHandler-Integrated-4.0解决方法IIS上部署MVC网站,打开后500错误
IIS上部署MVC网站,打开后ExtensionlessUrlHandler-Integrated-4.0解决方法 IIS上部署MVC网站,打开后500错误:处理程序“ExtensionlessUrl ...
- 【PHP面向对象(OOP)编程入门教程】12.重载新的方法(parent::)
在学习PHP 这种语言中你会发现, PHP中的方法是不能重载的, 所谓的方法重载就是定义相同的方法名,通过“参数的个数“不同或“参数的类型“不 同,来访问我们的相同方法名的不同方法.但是因为PHP是弱 ...
- js页面跳转 和 js打开新窗口 方法
js页面跳转 和 js打开新窗口 方法 第一种: 第二种: 第三种: 第四种: 第五种: 1.在原来的窗体中直接跳转用 window.location.href="你所要跳转的页面" ...
- 新的方法 (New Approach)¶
第一章:简介 - ANSI Common Lisp 中文版 新的方法 (New Approach)¶ 本书的目标之一是不仅是教授 Lisp 语言,而是教授一种新的编程方法,这种方法因为有了 Lisp ...
- Spring aop:decare-parent 为类增加新的方法
Spring aop:decare-parent 为类增加新的方法: 使用XML配置的方式: XML: <?xml version="1.0" encoding=" ...
- javascript插入before(),after()新DOM方法
随着web的技术突飞猛进的发展.HTML5 ES6等新技术的发展,与此同时DOM等标准也在悄悄的进步,各大浏览器也在悄悄的发展适配新的属性和方法,今天我们来看看Javascript新的DOM的方法 二 ...
- Java 8新特性:新语法方法引用和Lambda表达式及全新的Stream API
新语法 方法引用Method references Lambda语法 Lambda语法在AndroidStudio中报错 Stream API 我正参加2016CSDN博客之星的比赛 希望您能投下宝贵 ...
- JAVA8新特性——方法引用
JAVA9都要出来了,JAVA8新特性都没搞清楚,是不是有点掉队哦~ 在Lamda新特性的支持下,JAVA8中可以使用lamda表达式来创建匿名方法.然而,有时候我们仅仅是需要调用一个已存在的方法(如 ...
- win2012 挂载硬盘即增加新硬盘方法
这篇文章主要介绍了win2012 挂载硬盘即增加新硬盘方法,需要的朋友可以参考下 点击左下角的服务器管理图标 点击右上角的“工具”,再选择“计算机管理” 再点击“磁盘管理” 在磁盘1的按钮处单击右键, ...
随机推荐
- $state和$rootScope.$on($stateChangeStart)
这两者的区别:请看博客:http://stackoverflow.com/questions/32680292/angularjs-state-and-rootscope-onstatechanges ...
- 朴素贝叶斯 Naive Bayes
2017-12-15 19:08:50 朴素贝叶斯分类器是一种典型的监督学习的算法,其英文是Naive Bayes.所谓Naive,就是天真的意思,当然这里翻译为朴素显得更学术化. 其核心思想就是利用 ...
- uva-10491-经典问题
https://vjudge.net/problem/UVA-10491 有a个门后是牛,b个门后是车,一开始随机选一个门,然后主持人会打开c(c<a)个为牛的门,之后可以选择换门(这里要求总是 ...
- Hibernate入门2.简单的项目开发实例
Hibernate入门2.简单的项目开发实例 这一节通过一个简单的项目学习Hibernate项目的配置 代码下载 : 链接: http://pan.baidu.com/s/1zlgjl 密码: p34 ...
- SGU 132. Another Chocolate Maniac 状压dp 难度:1
132. Another Chocolate Maniac time limit per test: 0.25 sec. memory limit per test: 4096 KB Bob real ...
- Thinking in Java之衍生类和基础类的初始化顺序
<Thinking in Java>书里的例子,我又稍微修改了下代码: class Real{ public Real(String index) { // TODO Auto-gener ...
- Java——抽象类、接口
body, table{font-family: 微软雅黑; font-size: 10pt} table{border-collapse: collapse; border: solid gray; ...
- java 生成xml文件
这里也使用的是import org.w3c.dom.Document; 首先创建document对象,给该对象赋值,然后将document对象使用transformer的transformer转换方法 ...
- start-stop-daemon自动启动、关闭后台程序参数传递
/************************************************************************* * start-stop-daemon自动启动.关 ...
- HDU - 4676 :Sum Of Gcd (莫队&区间gcd公式)
Given you a sequence of number a 1, a 2, ..., a n, which is a permutation of 1...n. You need to answ ...