ASP.NET MVC4 增加,删除,修改和查询的实现
基本概念及架构
在开始实现增删改查功能之前,我们需要理解ASP.NET MVC4框架的基本架构。MVC代表模型(Model)、视图(View)和控制器(Controller)。模型负责应用程序的数据和业务逻辑;视图负责呈现数据并与用户交互;控制器负责处理用户输入并在模型和视图之间传递数据。在本示例中,我们将构建一个简单的图书管理系统,来实现基本的CRUD功能。
创建模型和数据库
我们要创建数据模型。在Visual Studio中,我们可以使用Entity Framework来生成数据库。定义一个“Book”模型,包含书籍的ID、名称、作者和出版日期等属性。接着,通过Entity Framework的代码优先方法创建数据库。
```csharp public class Book { public int Id { get; set; } public string Title { get; set; } public string Author { get; set; } public DateTime PublishedDate { get; set; } } ```使用“DbContext”类来创建上下文,以便于与数据库交互。
```csharp public class ApplicationDbContext : DbContext { public DbSet实现增删改查操作
接下来,我们要为控制器添加CRUD操作。创建一个BookController,处理对书籍的增删改查请求。
```csharp public class BookController : Controller { private ApplicationDbContext db = new ApplicationDbContext(); // 获取所有书籍 public ActionResult Index() { return View(db.Books.ToList()); } // 显示创建书籍的表单 public ActionResult Create() { return View(); } // 处理创建书籍的请求 [HttpPost] [ValidateAntiForgeryToken] public ActionResult Create(Book book) { if (ModelState.IsValid) { db.Books.Add(book); db.SaveChanges(); return RedirectToAction("Index"); } return View(book); } // 编辑书籍 public ActionResult Edit(int id) { Book book = db.Books.Find(id); return View(book); } [HttpPost] [ValidateAntiForgeryToken] public ActionResult Edit(Book book) { if (ModelState.IsValid) { db.Entry(book).State = EntityState.Modified; db.SaveChanges(); return RedirectToAction("Index"); } return View(book); } // 删除书籍 public ActionResult Delete(int id) { Book book = db.Books.Find(id); return View(book); } [HttpPost, ActionName("Delete")] [ValidateAntiForgeryToken] public ActionResult DeleteConfirmed(int id) { Book book = db.Books.Find(id); db.Books.Remove(book); db.SaveChanges(); return RedirectToAction("Index"); } } ```创建视图
每个操作都需要一个对应的视图文件。在“Views/Book”目录下,创建相应的视图文件,如“Index.cshtml”、“Create.cshtml”、“Edit.cshtml”和“Delete.cshtml”。
,在“Index.cshtml”中,使用 Razor 语法来显示书籍列表,并添加链接以创建、编辑及删除书籍:
```html @model IEnumerable书籍列表
@Html.ActionLink("创建书籍", "Create")
标题 | 作者 | 出版日期 | |
---|---|---|---|
@item.Title | @item.Author | @item.PublishedDate.ToString("d") | @Html.ActionLink("编辑", "Edit", new { id = item.Id }) | @Html.ActionLink("删除", "Delete", new { id = item.Id }) |