MVC公开课 – 2.查询,删除 (2013-3-15广州传智MVC公开课)

查询
/Controller/HomeController.cs


///
<summary> /// 查询 文章 列表 /// </summary> /// <returns></returns> public ActionResult Index() { //1.查询数据库里的 文章数据(通过EF执行) //1.1.第一种方式:SQO(标准查询运算符) //实际返回的是一个 IQueryable 对象?此处返回的是一个IQueryable接口 //System.Data.Entity.Infrastructure.DbQuery : IQueryable<TResult> //DbQuery<Models.BlogArticle> query = db.BlogArticles.Where(d => d.AIsDel == false) as DbQuery<Models.BlogArticle>; //直接将返回的DbQuery转换成List<T>集合,也就是立即查询数据库,并返回查询的集合 //List<Models.BlogArticle> list = db.BlogArticles.Where(d => d.AIsDel == false).ToList(); //============================================================================================= //1.2.第二种方法:LINQ List<Models.BlogArticle> list = (from d in db.BlogArticles where d.AIsDel == false select d).ToList() ; //2.将集合数据传给视图 //ViewBag.DataList = list; ViewData["DataList"] = list; //3.加载视图 return View(); }

/Views/Home/Index.cshtml

@using MVCBlog.Models
@{
Layout = null;
}

<!DOCTYPE html>

<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>Index</title>
<style>
.TList {
border: 1px solid #0094ff;
border-collapse: collapse;
width: 600px;
}
.TList tr td {
border:1px solid #0094ff;
padding: 10px;
}
</style>
</head>
<body>
<div>
<table class="TList">
<tr>
<th>id</th>
<th>标题</th>
<th>分类</th>
<th>状态</th>
<th>时间</th>
<th>操作</th>
</tr>
<!--遍历 设置给ViewData 的集合数据,生成html代码-->
@foreach (BlogArticle a in ViewData["DataList"] as List<MVCBlog.Models.BlogArticle>)
{
<tr>
<td>@a.AId</td>
<td>@a.ATitle</td>
<td>@a.ACate</td>
<td>@a.AStatu</td>
<td>@a.AAddtime</td>
<td>
<a href="/home/del/@a.AId">删除</a>
<a href="/home/modify/@a.AId">修改</a>
</td>
</tr>
}
</table>
</div>
</body>
</html>

 

image

 

 

删除

<script type="text/javascript">
function del(id) {
if (confirm("真的要删除吗?")) {
window.location = "/home/del/" + id;
}
}
</script>

<a href="javascript:del(@a.AId)">删除</a>

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);
}
}

你可能感兴趣的:(mvc)