效果图:

目录结构:

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. IntelliJ Idea 使用笔记

    1. IntelliJ Idea解决Could not autowire. No beans of 'xxxx' type found的错误提示. 原因可能有两个,第一个是IntellijIDEA本身 ...

  2. Python数据分析Pandas库方法简介

    Pandas 入门 Pandas简介 背景:pandas是一个Python包,提供快速,灵活和富有表现力的数据结构,旨在使“关系”或“标记”数据的使用既简单又直观.它旨在成为在Python中进行实际, ...

  3. 20190404用户及用户组管理(week1_day4)

    useradd userdel usermod groupadd groupdel 用户管理 为什么需要有用户? 1. linux是一个多用户系统 2. 权限管理(权限最小化) 用户:存在的目录是为了 ...

  4. php 使用str_replace替换关键词(兼容字符串,一维数组,多维数组)

    通过递归的方式来实现替换字符串. /* * * 使用str_replace替换关键词(兼容字符串,一维数组,多维数组) * $search 需要查找的内容 * $replace 需要替换的内容 * $ ...

  5. [c/c++] programming之路(22)、字符串(三)——字符串封装

    项目结构 头文件.h #include<stdio.h> #include<stdlib.h> #include<string.h> //字符串封装,需要库函数 / ...

  6. vscode设置代码块

    需要注意一点是,内容主体里面带有缩进的地方不能用 Tab,只能用空格

  7. Java实现简单的RPC框架

    一.RPC简介 RPC,全称为Remote Procedure Call,即远程过程调用,它是一个计算机通信协议.它允许像调用本地服务一样调用远程服务.它可以有不同的实现方式.如RMI(远程方法调用) ...

  8. Ipan笔记-2

    其实二级联动下拉选择框很简单的, 参考: https://www.cnblogs.com/zhangmiaomiao/p/6013533.html ============== 关于$.each和 $ ...

  9. Ubuntu 14.04 更新 setuptools 至 19.2 版本

    参考: Error: "No module named _markerlib" when installing some packages on virtualenv Ubuntu ...

  10. Field笔记

    一:时区的转换 1.navie 时间 和 aware 时间 navie 时间:不知道自己的时间表示的是哪个时区: aware 时间:知道自己的时间表示的是哪个时区. 2.pytz 库:用来处理时区的库 ...