效果图:

目录结构:

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

asp.net mvc6+ef框架做的书籍管理项目的更多相关文章

  1. ASP.NET MVC+EF框架+EasyUI实现权限管理系列

    http://www.cnblogs.com/hanyinglong/archive/2013/03/22/2976478.html ASP.NET MVC+EF框架+EasyUI实现权限管理系列之开 ...

  2. ASP.NET MVC+EF框架+EasyUI实现权限管理系列(21)-用户角色权限基本的实现说明

    原文:ASP.NET MVC+EF框架+EasyUI实现权限管理系列(21)-用户角色权限基本的实现说明     ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇)   (1):框 ...

  3. ASP.NET MVC+EF框架+EasyUI实现权限管理系列(20)-多条件模糊查询和回收站还原的实现

    原文:ASP.NET MVC+EF框架+EasyUI实现权限管理系列(20)-多条件模糊查询和回收站还原的实现 ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇)   (1):框架 ...

  4. ASP.NET MVC+EF框架+EasyUI实现权限管理系列(19)-用户信息的修改和浏览

    原文:ASP.NET MVC+EF框架+EasyUI实现权限管理系列(19)-用户信息的修改和浏览  ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇)   (1):框架搭建    ...

  5. ASP.NET MVC+EF框架+EasyUI实现权限管理系列(18)-过滤器的使用和批量删除数据(伪删除和直接删除)

    原文:ASP.NET MVC+EF框架+EasyUI实现权限管理系列(18)-过滤器的使用和批量删除数据(伪删除和直接删除) ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇)   ...

  6. ASP.NET MVC+EF框架+EasyUI实现权限管理系列(17)-注册用户功能的细节处理(各种验证)

    原文:ASP.NET MVC+EF框架+EasyUI实现权限管理系列(17)-注册用户功能的细节处理(各种验证) ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇)   (1):框 ...

  7. ASP.NET MVC+EF框架+EasyUI实现权限管理系列(14)-主框架搭建

    原文:ASP.NET MVC+EF框架+EasyUI实现权限管理系列(14)-主框架搭建    ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇)   (1):框架搭建    (2 ...

  8. ASP.NET MVC+EF框架+EasyUI实现权限管理系列(13)-权限设计

    原文:ASP.NET MVC+EF框架+EasyUI实现权限管理系列(13)-权限设计 ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇)   (1):框架搭建    (2):数据 ...

  9. ASP.NET MVC+EF框架+EasyUI实现权限管理系列(12)-实现用户异步登录和T4模板

    原文:ASP.NET MVC+EF框架+EasyUI实现权限管理系列(12)-实现用户异步登录和T4模板 ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇)   (1):框架搭建  ...

随机推荐

  1. (Review cs231n) ConvNet

    概念 神经网络的深度和数据据体的深度(图像的通道数channels)要主要区分. 输入 1.得到一些数据,作为网络的输入. 2.在CNN中有filter,the size of filter is s ...

  2. Filter中request对象强转问题

    以下为过滤器doFIlter方法的源代码: public void doFilter(ServletRequest request, ServletResponse response, FilterC ...

  3. opencv计算两个轮廓之间hu矩相似程度,MatchShapes

    https://blog.csdn.net/jiake_yang/article/details/52589063 [OpenCV3.3]通过透视变换矫正变形图像 https://blog.csdn. ...

  4. Luogu P1892 P1525 团伙 关押罪犯

    (怎么都是抓罪犯 怪不得写法差不多) 团伙 关押罪犯 并查集.以"敌人的敌人是朋友"的思路来处理.所以增加一个e/E数组来存储敌人. 关押罪犯还用到了贪心的思路.将冲突值从大到小排 ...

  5. 剑指offer(1)二维数组的查找

    限制今天起开始也刷剑指offer啦,一步一步来. 题目描述 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数, ...

  6. JS设计模式(13)状态模式

    什么是状态模式? 定义:将事物内部的每个状态分别封装成类,内部状态改变会产生不同行为. 主要解决:对象的行为依赖于它的状态(属性),并且可以根据它的状态改变而改变它的相关行为. 何时使用:代码中包含大 ...

  7. Bootstrap3基础 table-condensed 表格中的单元格紧凑一些

      内容 参数   OS   Windows 10 x64   browser   Firefox 65.0.2   framework     Bootstrap 3.3.7   editor    ...

  8. MyBio小隐本记注册破解

    既然开始了,就把这一个系列的都破了算了,这次主角小隐本记MyBio 和WDTP的原理是差不多的,先把软件界面换成e文,然后写了15个记录后提示注册,一样的路子,直接跳过注册窗口的弹出就好了 然后查壳一 ...

  9. (转载)Unity UGUI点击不同Button执行不同的方法(无参方法)

      将脚本随意挂在任何位置 但是这个btnParent一定是 按钮的父节点   脚本很简单自己敲一遍就全都明白了 上脚本 OnClickTest using UnityEngine; using Un ...

  10. 开源列式存储引擎Parquet和ORC

    转载自董的博客 相比传统的行式存储引擎,列式存储引擎具有更高的压缩比,更少的IO操作而备受青睐(注:列式存储不是万能高效的,很多场景下行式存储仍更加高效),尤其是在数据列(column)数很多,但每次 ...