[转载]asp.net mvc 2 简简单单做开发 实现基本数据操作操作RepositoryController – 飞创cms – 博客园.
ASP.NET mvc 2 使用Linq to SQL 来操作数据库,基本实现面向对象编程,同样在操作数据是我们也可以使用面向对象的继承再加上泛型,是操作更加简单。代码简单,不详细说明,里面用到几个简 单的扩展方法,以后会详细介绍。如db.find<T>(t),db.findkey<T>(id)。这是对dbcontent 做了些扩展。
RepositoryController.cs 代码如下:
1 public class RepositoryController<T>: BaseController where T : class,new()
2 {
3 private Table<T> list()
4 {
5 return db.GetTable<T>();
6 }
7
8
9 public string orderby = “Id desc“;
10 public virtual ActionResult Index(T art)
11 {
12 ViewData[“searchModel“] = art;
13 var Model = db.Find<T>(art);
14 RecordCount = Model.Count();
15 Model=Model.OrderBy(orderby);
16
17 Model = Model.Skip((CurPage – 1) * PageSize).Take(PageSize);
18
19 GetPager();
20 return View(“index“, Model);
21 }
22 [ValidateInput(false)]
23 public virtual ActionResult Add()
24 {
25
26 return View(new T());
27 }
28 [HttpPost]
29 [ValidateInput(false)]
30 public virtual ActionResult Add(T Model)
31 {
32 if (ModelState.IsValid)
33 {
34 try
35 {
36 list().InsertOnSubmit(Model);
37 db.SubmitChanges();
38 return RedirectToAction(“index“);
39 }
40 catch
41 {
42 return View(Model);
43 }
44 }
45 else
46 return View(Model);
47 }
48 [ValidateInput(false)]
49 public virtual ActionResult Edit(int id)
50 {
51 return View(db.FindKey<T>(id));
52 }
53 [HttpPost]
54 [ValidateInput(false)]
55 public virtual ActionResult Edit(int id, T Model)
56 {
57 try
58 {
59 var cate = db.FindKey<T>(id);
60 UpdateModel(cate);
61 db.SubmitChanges();
62 return RedirectToAction(“index“);
63 }
64 catch
65 {
66 return View(Model);
67 }
68 }
69 public virtual ActionResult Delete(int id)
70 {
71 list().DeleteOnSubmit(db.FindKey<T>(id));
72 db.SubmitChanges();
73 return RedirectToAction(“index“);
74 }
75
76
77 }
2 {
3 private Table<T> list()
4 {
5 return db.GetTable<T>();
6 }
7
8
9 public string orderby = “Id desc“;
10 public virtual ActionResult Index(T art)
11 {
12 ViewData[“searchModel“] = art;
13 var Model = db.Find<T>(art);
14 RecordCount = Model.Count();
15 Model=Model.OrderBy(orderby);
16
17 Model = Model.Skip((CurPage – 1) * PageSize).Take(PageSize);
18
19 GetPager();
20 return View(“index“, Model);
21 }
22 [ValidateInput(false)]
23 public virtual ActionResult Add()
24 {
25
26 return View(new T());
27 }
28 [HttpPost]
29 [ValidateInput(false)]
30 public virtual ActionResult Add(T Model)
31 {
32 if (ModelState.IsValid)
33 {
34 try
35 {
36 list().InsertOnSubmit(Model);
37 db.SubmitChanges();
38 return RedirectToAction(“index“);
39 }
40 catch
41 {
42 return View(Model);
43 }
44 }
45 else
46 return View(Model);
47 }
48 [ValidateInput(false)]
49 public virtual ActionResult Edit(int id)
50 {
51 return View(db.FindKey<T>(id));
52 }
53 [HttpPost]
54 [ValidateInput(false)]
55 public virtual ActionResult Edit(int id, T Model)
56 {
57 try
58 {
59 var cate = db.FindKey<T>(id);
60 UpdateModel(cate);
61 db.SubmitChanges();
62 return RedirectToAction(“index“);
63 }
64 catch
65 {
66 return View(Model);
67 }
68 }
69 public virtual ActionResult Delete(int id)
70 {
71 list().DeleteOnSubmit(db.FindKey<T>(id));
72 db.SubmitChanges();
73 return RedirectToAction(“index“);
74 }
75
76
77 }
————————————————————————————