详解ASP.NET MVC对表进行通用的增删改("ASP.NET MVC通用表数据增删改操作详解")

原创
ithorizon 6个月前 (10-21) 阅读数 34 #后端开发

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")

@foreach (var item in Model) {

}

@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操作,并在你的项目中成就地实现这些功能。


本文由IT视界版权所有,禁止未经同意的情况下转发

文章标签: 后端开发


热门