详解ASP.NET MVC对表进行通用的增删改("ASP.NET MVC通用表数据增删改操作详解")
原创ASP.NET MVC通用表数据增删改操作详解
在Web开发中,对数据库进行增删改查(CRUD)操作是基本需求。ASP.NET MVC 提供了一套强盛的框架,令开发者能够高效地实现这些操作。本文将详细介绍怎样在ASP.NET MVC中实现通用表数据的增删改操作。
一、准备工作
首先,确保你已经创建了一个ASP.NET MVC项目。以下步骤将在Visual Studio中创建一个易懂的ASP.NET MVC项目。
1. 创建项目
在Visual Studio中,选择“文件”->“新建”->“项目”,然后在“新建项目”对话框中选择“ASP.NET Core Web Application”,并指定项目名称和存储位置。
2. 选择模板
在“创建一个新的ASP.NET Core Web应用”对话框中,选择“Web Application (Model-View-Controller)”模板,然后点击“创建”按钮。
3. 添加实体类
在项目中添加一个新的类文件,例如“Student.cs”,用于即学生信息。以下是实体类的代码示例:
public class Student
{
public int Id { get; set; }
public string Name { get; set; }
public int Age { get; set; }
public string Email { get; set; }
}
4. 添加数据访问层(DAL)
在项目中添加一个新的文件夹“DAL”,并在该文件夹中添加一个新的类文件“StudentDAL.cs”,用于实现对学生信息的数据访问。以下是数据访问层的代码示例:
using System;
using System.Collections.Generic;
using System.Linq;
public class StudentDAL
{
private static List
students = new List (); public static List
GetAllStudents() {
return students;
}
public static Student GetStudentById(int id)
{
return students.FirstOrDefault(s => s.Id == id);
}
public static void AddStudent(Student student)
{
student.Id = students.Max(s => s.Id) + 1;
students.Add(student);
}
public static void UpdateStudent(Student student)
{
Student existingStudent = students.FirstOrDefault(s => s.Id == student.Id);
if (existingStudent != null)
{
existingStudent.Name = student.Name;
existingStudent.Age = student.Age;
existingStudent.Email = student.Email;
}
}
public static void DeleteStudent(int id)
{
Student student = students.FirstOrDefault(s => s.Id == id);
if (student != null)
{
students.Remove(student);
}
}
}
二、创建控制器
在项目中添加一个新的控制器“StudentController”,用于处理与学生信息相关的请求。以下是控制器的代码示例:
using Microsoft.AspNetCore.Mvc;
using System;
public class StudentController : Controller
{
// GET: Student
public IActionResult Index()
{
var students = StudentDAL.GetAllStudents();
return View(students);
}
// GET: Student/Details/5
public IActionResult Details(int id)
{
var student = StudentDAL.GetStudentById(id);
if (student == null)
由于篇幅原因,下面是控制器代码的完整部分:
using Microsoft.AspNetCore.Mvc;
using System;
public class StudentController : Controller
{
// GET: Student
public IActionResult Index()
{
var students = StudentDAL.GetAllStudents();
return View(students);
}
// GET: Student/Details/5
public IActionResult Details(int id)
{
var student = StudentDAL.GetStudentById(id);
if (student == null)
{
return NotFound();
}
return View(student);
}
// GET: Student/Create
public IActionResult Create()
{
return View();
}
// POST: Student/Create
[HttpPost]
[ValidateAntiForgeryToken]
public IActionResult Create([Bind("Id,Name,Age,Email")] Student student)
{
if (ModelState.IsValid)
{
StudentDAL.AddStudent(student);
return RedirectToAction(nameof(Index));
}
return View(student);
}
// GET: Student/Edit/5
public IActionResult Edit(int id)
{
var student = StudentDAL.GetStudentById(id);
if (student == null)
{
return NotFound();
}
return View(student);
}
// POST: Student/Edit/5
[HttpPost]
[ValidateAntiForgeryToken]
public IActionResult Edit(int id, [Bind("Id,Name,Age,Email")] Student student)
{
if (id != student.Id)
{
return NotFound();
}
if (ModelState.IsValid)
{
try
{
StudentDAL.UpdateStudent(student);
}
catch (Exception ex)
{
if (!StudentExists(student.Id))
{
return NotFound();
}
else
{
throw;
}
}
return RedirectToAction(nameof(Index));
}
return View(student);
}
// GET: Student/Delete/5
public IActionResult Delete(int id)
{
var student = StudentDAL.GetStudentById(id);
if (student == null)
{
return NotFound();
}
return View(student);
}
// POST: Student/Delete/5
[HttpPost, ActionName("Delete")]
[ValidateAntiForgeryToken]
public IActionResult DeleteConfirmed(int id)
{
StudentDAL.DeleteStudent(id);
return RedirectToAction(nameof(Index));
}
private bool StudentExists(int id)
{
return StudentDAL.GetStudentById(id) != null;
}
}
三、创建视图
在项目中添加视图文件,用于显示和编辑学生信息。以下是几个关键视图的代码示例:
1. Index视图
在“Views”文件夹下的“Student”文件夹中添加“Index.cshtml”文件,用于显示学生列表:
@model List<Student>
学生列表
@Html.ActionLink("创建学生", "Create")
@Html.DisplayNameFor(model => model.Id) | @Html.DisplayNameFor(model => model.Name) | @Html.DisplayNameFor(model => model.Age) | @Html.DisplayNameFor(model => model.Email) | 操作 |
---|---|---|---|---|
@Html.DisplayFor(modelItem => item.Id) | @Html.DisplayFor(modelItem => item.Name) | @Html.DisplayFor(modelItem => item.Age) | @Html.DisplayFor(modelItem => item.Email) | @Html.ActionLink("编辑", "Edit", new { id = item.Id }) | @Html.ActionLink("详情", "Details", new { id = item.Id }) | @Html.ActionLink("删除", "Delete", new { id = item.Id })
|
2. Create视图
在“Views”文件夹下的“Student”文件夹中添加“Create.cshtml”文件,用于创建新学生信息:
@model Student
创建学生
请填写以下信息。
3. Edit视图
在“Views”文件夹下的“Student”文件夹中添加“Edit.cshtml”文件,用于编辑学生信息:
@model Student
编辑学生
请填写以下信息。
4. Details视图
在“Views”文件夹下的“Student”文件夹中添加“Details.cshtml”文件,用于显示学生详细信息:
@model Student
学生详情
学生名称: @Model.Name
年龄: @Model.Age
邮箱: @Model.Email
5. Delete视图
在“Views”文件夹下的“Student”文件夹中添加“Delete.cshtml”文件,用于删除学生信息:
@model Student
删除学生
你确定要删除这条记录吗?
学生名称: @Model.Name
年龄: @Model.Age
邮箱: @Model.Email
四、运行和测试
完成上述步骤后,运行项目并测试增删改查功能是否正常。确保在浏览器中访问“/Student”路径,你应该能看到学生列表,并且能够进行创建、编辑、查看和删除操作。
五、总结
本文详细介绍了在ASP.NET MVC中实现通用表数据增删改操作的步骤。通过创建实体类、数据访问层、控制器和视图,我们能够敏捷构建一个功能完整的CRUD应用程序。在实际开发中,你大概需要连接真实的数据库,并使用Entity Framework等ORM工具来简化数据访问层的实现。但本文的示例提供了一个基本框架,你可以在此基础上进行扩展和改进。
愿望这篇文章能够帮助你更好地懂得ASP.NET MVC的CRUD操作,并在你的项目中成就地实现这些功能。