前不久學習了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 else10 {11 return View("Index", data);12 }13 }
怎麼樣呢?在列表頁的資料,你還在為了寫分頁sql那樣複雜的代碼愁嗎?不要猶豫了,你來試試吧,不過ToPagedList(id ?? 1, 5);是已經實現的方法的哦,在實際的MVC3.0中沒有內建的,下次給出不用已經實現的代碼的方式,正在不斷的總結中。。。。。。。。。