一、 语言和环境 1. 实现语言:C#语言。 2. 环境要求:Visual Studio 2012 + SQL Server 2012。 3. 实现技术:ASP.NET MVC+EF(100 分)或 ASP.NET+三层+EF(90 分)。 4. 功能要求:使用框架模板自动生成的代码,所对应的功能不得分。
二、 实现功能 使用 ASP.NET 技术实现开发一套简易的图书管理系统,具体实现功能如下: 1. 首次打开页面,显示书库中所有的图书信息,如图 1 所示。
2. 点击超链接“新增图书”显示新增图书页面,如图 2 所示。
3. 点击“添加”按钮新增图书,需进行表单验证,其中,书籍名称、出版社、出版日期、单价必须 输入,若验证失败,效果如图 3 所示。
4. 成功添加图书之后,显示首页页面,如图 4 所示。
5. 点击操作栏“删除”按钮,提示是否删除指定书籍,如图 5 所示,点击“确定”后,删除所对应 的图书信息,删除成功后显示首页。
三、 数据库设计 1、创建数据库(BookDB)。 2、创建图书表(BookInfo),结构如下:
3、添加 5 条以上的测试数据。
话不多说上代码:
这是控制器的,是从数据库导入的EF模型
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using BooksMVC.Models;
namespace BooksMVC.Controllers
{
public class BookController : Controller
{
//创建上下文对象
BookDBEntities db = new BookDBEntities();
// GET: Book
//首页
public ActionResult Index()
{
//显示所有图书信息
return View(db.BookInfo.ToList());
}
//根据编号ID删除图书
public ActionResult Del(int? id)
{
//根据ID获取要删除的
var a = db.BookInfo.FirstOrDefault(p => p.BookId == id);
//在上下文中删除
db.BookInfo.Remove(a);
//保存数据库
db.SaveChanges();
//删除成功跳转至首页显示
return RedirectToAction("Index");
}
/// <summary>
/// 添加
/// </summary>
/// <returns></returns>
public ActionResult Add()
{
return View();
}
//添加方法,定义实体类BookInfo接收从前台传的值
[HttpPost]
public ActionResult Add(BookInfo b)
{
//非空判断
if (ModelState.IsValid)
{
//添加
db.BookInfo.Add(b);
//保存
db.SaveChanges();
//添加成功跳转至首页显示
return RedirectToAction("Index");
}
//添加不成功还返回到本页面
return View();
}
}
}
这是首页的,没有用bootstrap。
@{
Layout = null;
}
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>Index</title>
</head>
<body>
<div>
<h3>图书列表</h3>
<a style="text-decoration:none" href="/Book/Add">新增图书</a>
<table border="1" cellspacing="0">
<tr>
<th>编号</th>
<th>书籍名称</th>
<th>出版社</th>
<th>出版日期</th>
<th>单价</th>
<th>操作</th>
</tr>
@model List<BooksMVC.Models.BookInfo>
@foreach (var item in Model)
{
<tr>
<td>@item.BookId</td>
<td>@item.BookName</td>
<td>@item.Publishing</td>
<td>@item.PublishDate</td>
<td>@item.Price</td>
<td>
<button onclick="Del(@item.BookId, '@item.BookName')" style="background-color:#1e93ea;border:none;border-radius:5px;">删除</button>
</td>
</tr>
}
</table>
</div>
<script>
function Del(id, name) {
if (confirm("是否确认删除书籍《" + name + "》?")) {
location.href = "/Book/Del?id=" + id;
}
}
</script>
</body>
</html>
这是添加页面的,用到了模型注解中的非空注解
@{
Layout = null;
}
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>Add</title>
</head>
<body>
<div>
<h3>新增图书</h3>
<hr />
<form action="/Book/Add" method="post">
书籍名称 <input type="text" name="BookName" value="" placeholder="请输入" /><br />
<span style="color:red">@Html.ValidationMessage("BookName")</span><br />
出版社 <input type="text" name="Publishing" value="" /><br />
<span style="color:red">@Html.ValidationMessage("Publishing")</span><br />
出版日期 <input type="date" name="PublishDate" value="" /><br />
<span style="color:red">@Html.ValidationMessage("PublishDate")</span><br />
单价 <input type="text" name="Price" value="" /><br />
<span style="color:red">@Html.ValidationMessage("Price")</span><br />
<input type="submit" value="添加" />
</form>
</div>
</body>
</html>
欢迎各位大佬指点,交流。