效果图:

目录结构:

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. centos crash debug

    https://www.dedoimedo.com/computers/crash.html#mozTocId484074 http://people.redhat.com/anderson/cras ...

  2. poj 3294 Life Forms - 后缀数组 - 二分答案

    题目传送门 传送门I 传送门II 题目大意 给定$n$个串,询问所有出现在严格大于$\frac{n}{2}$个串的最长串.不存在输出'?' 用奇怪的字符把它们连接起来.然后求sa,hei,二分答案,按 ...

  3. SVN冲突以及解决办法

    1.冲突原因: 假设 A.B 两个用户都在版本号为 100 的时候,更新了 kingtuns.txt 这个文件,A 用户在修改完成之后提交 kingtuns.txt 到服务器, 这个时候提交成功,这个 ...

  4. Ansible 的初步使用

    在安装好ansible以后,首先使用ansible -h命令和ansible --version 命令查看帮助手册和版本信息. ansible 配置文件 ansible 的配置文件有多个位置,查找顺序 ...

  5. 单元测试系列之七:Sonar 数据库表关系整理一(rule相关)

    更多原创测试技术文章同步更新到微信公众号 :三国测,敬请扫码关注个人的微信号,感谢! 原文链接:http://www.cnblogs.com/zishi/p/7510072.html 简介:Sonar ...

  6. Google advertiser api开发概述——入门指南

    使用入门 AdWords API 可让应用直接与 AdWords 平台互动,大幅提高管理大型或复杂 AdWords 帐号和广告系列的效率.一些典型的用例包括: 自动帐号管理 自定义报告 基于产品目录的 ...

  7. VR外包团队—国内首家VR虚拟现实主题公园即将在北京推出

    期,美国“The VOID”.澳洲“Zero Latency”两大虚拟现实主题乐园让许多爱好者兴奋至极,门票据说都已经预约到明年2月!在如此巨大的商机面前,谁将抢到国内VR虚拟现实主题公园第一块蛋糕? ...

  8. js实现往数组中添加非存在的对象,如果存在就改变键值。

    let arr = [] // 数组中元素数据类型为{name: 'bb', age: 12} // 现在需求是,将每次获得的新对象{name: '', age: }push到数组arr中,但前提是数 ...

  9. Linux ssh下实现免密码登录

    1.Linux 生成密钥 ssh-keygen -t rsa 进入“.ssh”会生成以下几个文件 id_rsa : 生成的私钥文件 id_rsa.pub : 生成的公钥文件 know_hosts : ...

  10. 无头浏览器phantomJS

    selenium: 有头浏览器的代表(selenium+python也可实现静默运行 引入python的一个包,包叫:虚拟屏幕pyvirtualdisplay) PhantomJS : 无头浏览器的代 ...