MVC4学习笔记(一)
1.查询
1)Controllers
/// <summary>
/// 数据上下文对象
/// </summary>
OumindBlogEntities db = new OumindBlogEntities(); #region 查询文章列表
/// <summary>
/// 查询文章列表
/// </summary>
/// <returns></returns>
public ActionResult Index()
{ //linq
List<Models.BlogArticle> list = (from d in db.BlogArticles where d.AIsDel == false select d).ToList();
//1.2将集合数据传给视图
ViewBag.DataList = list;
//ViewData["DataList"] = list;
return View();
} #endregion
2)View
@using MVCBlog.Models
<!--引入命名空间-->
<table id="tbList">
<tr>
<th>id</th>
<th>标题</th>
<th>分类</th>
<th>状态</th>
<th>时间</th>
<th>操作</th>
</tr>
@foreach (BlogArticle a in ViewBag.DataList as List<BlogArticle>)
{
<tr>
<td>@a.AId</td>
<td>@a.ATitle</td>
<td>@a.BlogArticleCate.Name</td>
<td>@a.Enumeration.e_cname</td>
<td>@a.AAddtime</td>
<td>
<a href="javascript:del(@a.AId)">删除</a>
<a href="/Home/Modify/@a.AId">修改</a>
</td>
</tr> }
</table>
2.删除
1)Controllers
#region 删除操作
/// <summary>
/// 删除操作
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
public ActionResult Del(int id)
{
try
{
//1.创建要删除的对象
BlogArticle modelDel = new BlogArticle { AId = id };
//2.将对象添加到 EF 管理容器
db.BlogArticles.Attach(modelDel);
//3.将对象包装类的状态 标识为 删除状态
db.BlogArticles.Remove(modelDel);
//4.更新到数据库
db.SaveChanges();
//5.更新成功,则命令浏览器 重定向到 /Home/List 方法
return RedirectToAction("Index", "Home");
}
catch (Exception ex)
{
return Content("删除失败~~~" + ex.Message);
} }
#endregion
3.修改
1)Controller
using System.Data.Entity.Infrastructure;
#region 显示要修改的数据
/// <summary>
/// 显示要修改的数据
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
public ActionResult Modify(int id)
{
BlogArticle model = (from a in db.BlogArticles where a.AId == id select a).FirstOrDefault(); //生成文章分类 下拉框 列表集合 <option value="1">文本</option>
IEnumerable<SelectListItem> listItem = (from c in db.BlogArticleCates
where c.IsDel == false
select c).ToList().Select(c => new SelectListItem { Value=c.Id.ToString(),Text=c.Name});
//将生成的文章分类 下来框 列表集合 设置给ViewBag
ViewBag.CateList = listItem; //使用View 构造函数,将实体传递给视图上名为Model的属性
return View(model); }
#endregion #region 0.5 执行修改
[HttpPost]
/// <summary>
/// 0.5 执行修改
/// </summary>
/// <param name="model"></param>
/// <returns></returns>
public ActionResult Modify(BlogArticle model)
{
//1.将实体对象a 加入到EF 对象容器中,并 b获取 伪包装类 对象
DbEntityEntry<BlogArticle> entry = db.Entry<BlogArticle>(model);
//2.将包装类对象 的状态设置为 Unchanged
entry.State = System.Data.EntityState.Unchanged;
//3.设置 被改变的 属性
entry.Property(a => a.ATitle).IsModified = true;
entry.Property(a => a.AContent).IsModified = true;
entry.Property(a => a.ACate).IsModified = true;
//4.提交到数据库,完成修改
db.SaveChanges();
//5.命令 浏览器 重定向 到 Home/List 方法
return RedirectToAction("Index", "Home"); }
#endregion
2)View
@model MVCBlog.Models.BlogArticle
<!--指定页面Model 属性 的类型-->
@using(Html.BeginForm("Modify","Home",FormMethod.Post))
{ <table id="tbList">
<tr><td colspan="2">修改:@Html.HiddenFor(a=>a.AId)</td></tr>
<tr>
<td>标题:</td>
<td>@Html.TextBoxFor(a=>a.ATitle)</td>
</tr>
<tr>
<td>分类:</td>
<!--使用强类型方法生成下拉框,并自动根据 model属性里的ACate值 设置 下拉框的默认选中项-->
<td>@Html.DropDownListFor(a => a.ACate, ViewBag.CateList as IEnumerable<SelectListItem>)</td>
</tr>
<tr>
<td>内容:</td>
<td>@Html.TextAreaFor(a=>a.AContent,10,60,null)</td>
</tr>
<tr>
<td colspan="2" ><input type="submit" value="确认修改"/>@Html.ActionLink("返回","Index","Home")</td>
</tr>
</table>
}
MVC4学习笔记(一)的更多相关文章
- MVC4学习笔记之--身份认证过滤器
过滤器作为MVC模式中面向切面编程应用很广泛,例如身份验证,日志,异常,行为截取等.博客园里面的大神对应过滤器的介绍以及很多,MVC4中不同的过滤器也介绍得很清楚.FlyDragon 辉太 禁止吸烟 ...
- asp.net mvc4 学习笔记一(基本原理)
做了8年的asp.net webform,用过MVVM但还没用过MVC , 虽然项目不用MVC,但是还是想了解一下,今天第二天学习,以下是学习心得. VS2012默认带有asp.net mvc3和as ...
- ASP.NET MVC4学习笔记路由系统概念与应用篇
一.概念 1.路由是计算机网络中的一个技术概念,表示把数据包从一个网段转发至另一网段.ASP.NET中的路由系统作用类似,其作用是把请求Url映射到相应的"资源"上,资源可以是一段 ...
- ASP.NET MVC4学习笔记之总体概述
断断续续使用ASP.NET MVC框架也有一年多了,也算积累了一些经验,唉,一直想写一些笔记好好总结一下,人太懒不想动笔,今天终于决定开始.希望自己能坚持下去. 这篇文章大体介绍ASP.NET MVC ...
- MVC4 学习笔记01
1 . ASP.NET MVC 中 ActionResult 和 ViewResult 在使用上的区别是什么?要注意什么吗? ActionResult 是一个抽象(abstract)类,ViewRes ...
- ASP.NET MVC4学习笔记
一.MVC简介
- Mvc4学习笔记一(Ajax.ActionLink)
<style type="text/css"> #left {width:200px; min-height:500px;border:1px solid #ccc;f ...
- MVC4 学习笔记 之 URL中存在编译的空格 20%20%
/Config/Edit/QQCC%20%20%20%20%20%20%20 原因是: 通过EF直接添加了空格? NO 是因为你的数据库字段设计问题,因为你当然设计如>:sID nchar(10 ...
- VS2012 MVC4 学习笔记-概览
1. 访问请求过程 访问收到后路由(Router)根据路径由分配给对应的控制器(Control),然后由控制器返回页面视图(View) 路由设置一个默认的控制器,类似 主页的样子吧 <未完待续& ...
随机推荐
- oracle 高水位线详解
一.什么是水线(High Water Mark)? 所有的oracle段(segments,在此,为了理解方便,建议把segment作为表的一个同义词) 都有一个在段内容纳数据的上限,我们把这个上限称 ...
- 该怎样提高ZBrush的创作效率
ZBrush是一款数字雕刻和绘画软件,以强大的功能和直观的工作流程改变了整个三维行业,相信使用ZBrush的人都希望加快雕刻速度提高ZBrush技能,很多雕刻专家也都试图证明加快雕刻速度是否真的能提 ...
- u3d 模型ID配置
换模型为什么要改代码 0.0 你没有逻辑ID->模型的配置么. 做2个配置.. 分别是角色的ID对应模型路径. 然后是里面的动画名对应真实动画名. 比如 ID=1 path = "xx ...
- java 20 - 4 IO流概述和一个简单例子解析
IO流的分类: 流向: 输入流 读取数据 输出流 写出数据 数据类型: 字节流 字节输入流 读取数据 InputStream 字节输出流 写出数据 OutputStream 字符流 字符 ...
- 解决Gradle DSL method not found: ‘android()’
最近导入as的项目出了这样的问题 这个问题困扰了我很长时间,好吧,搜了半天全都是runProguard的,最后在stackoverflow上搜到解决办法了: http://stackoverflow. ...
- C和指针 3.9作用域、存储类型示例
; extern int b; static int c; int d( int e ) { ; register int b; ; extern int a; ... { int e; int a; ...
- python-基础案例
范例一: 练习:元素分类 有如下值集合 [11,22,33,44,55,66,77,88,99,90...],将所有大于 66 的值保存至字典的第一个key中,将小于 66 的值保存至第二个key的值 ...
- javascript中的数组操作
1.数组的创建 var arrayObj = new Array(); //创建一个数组 var arrayObj = new Array([size]); //创建一个数组并指定长度,注意不是上限, ...
- iOS之block
1. Block的声明和线程安全Block属性的声明,首先需要用copy修饰符,因为只有copy后的Block才会在堆中,栈中的Block的生命周期是和栈绑定的,可以参考之前的文章(iOS: 非ARC ...
- poj2407
欧拉函数裸题. 欧拉函数:在数论,对正整数n,欧拉函数是少于或等于n的数中与n互质的数的数目. 欧拉函数的定义: E(N)= ( 区间[1,N-1] 中与 N 互质的整数个数). 对于 积性函数 F ...