效果图:
目录结构:
book控制器代码:
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; namespace WebApplication2.Controllers { public class BookController : Controller { //引入ef Models.qrabEntities entity = new Models.qrabEntities(); // GET: 书籍列表 public ActionResult BookList() { var book = from b in entity.Book where b.id > 1 select b; return View(book.ToList()); } //添加一本书籍 public ActionResult Create() { var booktype = from s in entity.BookType select s; List<SelectListItem> items = new List<SelectListItem>(); foreach(var item in booktype) { SelectListItem selectItem = new SelectListItem() { Text = item.typename, Value = item.id.ToString() }; items.Add(selectItem); } ViewData["typeid"] = items; return View(); } //添加书籍post提交 [HttpPost] public ActionResult Create(Models.Book book) { if (ModelState.IsValid) { string strTypeid = Request.Form["typeid"]; int intid = Convert.ToInt32(strTypeid); var typeList = from s in entity.BookType where s.id == intid select s; book.BookType = typeList.FirstOrDefault(); entity.Book.Add(book); entity.SaveChanges(); return RedirectToAction("BookList"); } else { var booktype = from s in entity.BookType select s; List<SelectListItem> items = new List<SelectListItem>(); foreach (var item in booktype) { SelectListItem selectItem = new SelectListItem() { Text = item.typename, Value = item.id.ToString() }; items.Add(selectItem); } ViewData["typeid"] = items; return View(book); } } //书籍详情 public ActionResult Details(int id) { var book = from s in entity.Book where s.id == id select s; Models.Book bookModel = book.FirstOrDefault(); if(bookModel!=null) { return View("Details", bookModel); } else { return RedirectToAction("BookList"); } } //编辑书籍 public ActionResult Edit(int id) { var book = from s in entity.Book where s.id == id select s; Models.Book bookModel = book.FirstOrDefault(); if(bookModel!=null) { //外键关系 找出当前书本所对于的分类信息 var booktype = from s in entity.BookType where s.id == bookModel.typeid select s; //取出所以的书籍分类,绑定到dropdownlist中 var booktypes = from s in entity.BookType select s; List<SelectListItem> items = new List<SelectListItem>(); foreach(var item in booktypes) { SelectListItem selectItem = null; if(item.id==bookModel.typeid) { selectItem = new SelectListItem() { Text = item.typename, Value = item.id.ToString(), Selected = true }; } else { selectItem = new SelectListItem() { Text = item.typename, Value = item.id.ToString() }; } items.Add(selectItem); } ViewData["typeid"] = items; return View("Edit", bookModel); } else { return RedirectToAction("BookList"); } } //编辑书籍post提交书籍 [HttpPost] public ActionResult Edit(Models.Book book) { try { var bookold = entity.Book.Find(book.id);//取出修改前的数据模型 string strbooktypeid = Request.Form["typeid"]; bookold.name = book.name; bookold.txt = book.txt; bookold.typeid = Convert.ToInt32(strbooktypeid); entity.Entry<Models.Book>(bookold).State = System.Data.Entity.EntityState.Modified; int intCount = entity.SaveChanges(); if(intCount>0) { return RedirectToAction("Details", new { id = book.id }); }else { return Content("修改失败"); } } catch (Exception) { return Content("修改失败"); } } //删除书籍 public ActionResult Delete(int id) { //var book = entity.Book.Find(id); var book1 = from s in entity.Book where s.id == id select s; Models.Book book = book1.FirstOrDefault(); return View("Delete", book); } //post提交确认删除书籍 [HttpPost] public ActionResult Delete(int id,FormCollection collection) { //var book = entity.Book.Find(id); var book1 = from s in entity.Book where s.id == id select s; Models.Book book = book1.FirstOrDefault(); //多本书可以循环删除 //foreach(var item in book) //{ // entity.Book.Remove(item); //} entity.Book.Remove(book); entity.SaveChanges(); return RedirectToAction("BookList"); } } }