Asp.net Mvc实现增删改查
时间: 2023-07-07 09:22:28 浏览: 71
ASP.NET MVC 是一种用于创建 Web 应用程序的框架,其中包括实现增删改查等常见操作的功能。下面是一个简单的示例:
1. 创建 Model 类
在 Models 文件夹中创建一个类,用于表示要操作的数据。
```csharp
public class Person
{
public int Id { get; set; }
public string Name { get; set; }
public int Age { get; set; }
}
```
2. 创建 DbContext 类
在 Models 文件夹中创建一个继承自 DbContext 的类,用于处理数据的存储和检索。
```csharp
public class MyDbContext : DbContext
{
public DbSet<Person> Persons { get; set; }
}
```
3. 创建控制器类
在 Controllers 文件夹中创建一个控制器类,用于处理 HTTP 请求并调用 DbContext 的方法。
```csharp
public class PersonController : Controller
{
private readonly MyDbContext _context;
public PersonController(MyDbContext context)
{
_context = context;
}
public IActionResult Index()
{
var persons = _context.Persons.ToList();
return View(persons);
}
public IActionResult Create()
{
return View();
}
[HttpPost]
public IActionResult Create(Person person)
{
if (ModelState.IsValid)
{
_context.Persons.Add(person);
_context.SaveChanges();
return RedirectToAction("Index");
}
return View(person);
}
public IActionResult Edit(int id)
{
var person = _context.Persons.FirstOrDefault(p => p.Id == id);
if (person == null)
{
return NotFound();
}
return View(person);
}
[HttpPost]
public IActionResult Edit(int id, Person person)
{
if (id != person.Id)
{
return NotFound();
}
if (ModelState.IsValid)
{
_context.Persons.Update(person);
_context.SaveChanges();
return RedirectToAction("Index");
}
return View(person);
}
public IActionResult Delete(int id)
{
var person = _context.Persons.FirstOrDefault(p => p.Id == id);
if (person == null)
{
return NotFound();
}
return View(person);
}
[HttpPost, ActionName("Delete")]
public IActionResult DeleteConfirmed(int id)
{
var person = _context.Persons.FirstOrDefault(p => p.Id == id);
if (person == null)
{
return NotFound();
}
_context.Persons.Remove(person);
_context.SaveChanges();
return RedirectToAction("Index");
}
}
```
4. 创建视图文件
在 Views 文件夹中创建与控制器方法名相对应的视图文件,用于显示数据和接收用户输入。
Index.cshtml:
```html
@model List<Person>
<table>
<thead>
<tr>
<th>Id</th>
<th>Name</th>
<th>Age</th>
<th></th>
</tr>
</thead>
<tbody>
@foreach (var person in Model)
{
<tr>
<td>@person.Id</td>
<td>@person.Name</td>
<td>@person.Age</td>
<td>
<a asp-action="Edit" asp-route-id="@person.Id">Edit</a> |
<a asp-action="Delete" asp-route-id="@person.Id">Delete</a>
</td>
</tr>
}
</tbody>
</table>
<a asp-action="Create">Create New</a>
```
Create.cshtml:
```html
@model Person
<form asp-action="Create" method="post">
<div>
<label>Name:</label>
<input asp-for="Name" />
</div>
<div>
<label>Age:</label>
<input asp-for="Age" />
</div>
<button type="submit">Create</button>
</form>
<a asp-action="Index">Back to List</a>
```
Edit.cshtml:
```html
@model Person
<form asp-action="Edit" asp-route-id="@Model.Id" method="post">
<div>
<label>Name:</label>
<input asp-for="Name" />
</div>
<div>
<label>Age:</label>
<input asp-for="Age" />
</div>
<button type="submit">Save</button>
</form>
<a asp-action="Index">Back to List</a>
```
Delete.cshtml:
```html
@model Person
<p>Are you sure you want to delete this record?</p>
<form asp-action="Delete" asp-route-id="@Model.Id" method="post">
<button type="submit">Delete</button>
</form>
<a asp-action="Index">Back to List</a>
```
以上就是一个简单的 ASP.NET MVC 实现增删改查的示例。请注意,这只是一个基础示例,实际项目中可能需要处理更复杂的数据和业务逻辑。