ASP.NET MVC学习总结(二)
前不久学习了asp.net的webform,然后才来学习MVC的,感觉思维有了很大的改变,再用webform的思想就有些力不从心了,所以还是的忘记webform的东西,从头再来理解MVC3.0吧,下面就是从简单的开始吧。
在asp.net的webform中如果要写的话就会写很多的sql语句的,比如:INSERT INTO TABLE(),SELECT。。。。。总之,就是要写大量的sql语句,特别是在复杂的分页sql语句,要是写不好的话还会出现一些意向不到错误,下面来看看MVC3.0中是怎么样的进行增删查改的吧:
(1)、数据的添加,代码如下:
1 public ActionResult Create(User dpt) 2 { 3 var data = db.Departments.OrderByDescending(p => p.Name); 4 ViewBag.DptName = data; 5 try 6 { 7 db.Entry(dpt).State = System.Data.EntityState.Added; 8 db.SaveChanges(); 9 } 10 catch (Exception ex) 11 { 12 ViewBag.Ex = ex.Message; 13 } 14 15 return View(); 16 }
看一下代码中着色的代码吧,够简单的吧,它就是这样的简单的,你看了之后还想写sql语句吗?还在为了从前台获取数据写大量的“冗余代码”吗?试试吧!
(2)、下面再来看看删除的代码吧,不用写诸如DELETE。。之类的代码了吧,代码如下:
1 public ActionResult Delete(string LoginName) 2 { 3 User users = new User(); 4 users.LoginName = LoginName; 5 db.Entry(users).State = System.Data.EntityState.Deleted; 6 db.SaveChanges(); 7 return RedirectToAction("Index", new { id = Request.QueryString["page"] }); 8 }
(3)、再给出数据列表的代码吧,如下:
1 public ActionResult Index(int? id) 2 { 3 var list = from p in db.users.Include(p => p.Department) orderby p.ID descending select p; 4 IEnumerable<User> data = list.ToPagedList(id ?? 1, 5); 5 if (Request.IsAjaxRequest()) 6 { 7 return PartialView("_Index", data); 8 } 9 else 10 { 11 return View("Index", data); 12 } 13 }
怎么样呢?在列表页的数据,你还在为了写分页sql那样复杂的代码愁吗?不要犹豫了,你来试试吧,不过ToPagedList(id ?? 1, 5);是已经实现的方法的哦,在实际的MVC3.0中没有自带的,下次给出不用已经实现的代码的方式,正在不断的总结中。。。。。。。。。