ASP.NET MVC 0之编辑和删除新闻操作("ASP.NET MVC 0:新闻编辑与删除操作详解")
原创
一、引言
在ASP.NET MVC开发中,新闻管理是一个常见的功能。本文将详细介绍怎样在ASP.NET MVC中实现新闻的编辑和删除操作。我们将从创建一个明了的新闻管理项目起初,逐步实现新闻的添加、编辑和删除功能。
二、创建ASP.NET MVC项目
首先,我们需要创建一个ASP.NET MVC项目。打开Visual Studio,选择“文件”菜单下的“新建”选项,然后选择“项目”。在弹出的“新建项目”对话框中,选择“ASP.NET Core Web Application”模板,输入项目名称,点击“创建”按钮。
在“创建Web应用程序”对话框中,选择“.NET Core”版本,选择“ASP.NET Core Web Application (Model-View-Controller)”模板,点击“创建”按钮。
三、创建新闻模型(Model)
在项目中,创建一个名为“News”的模型类,用于即新闻信息。
public class News
{
public int Id { get; set; }
public string Title { get; set; }
public string Content { get; set; }
public DateTime CreatedAt { get; set; }
}
四、创建新闻数据访问层(Data Access Layer,DAL)
为了方便管理新闻数据,我们创建一个名为“NewsService”的服务类,用于实现新闻的添加、查询、编辑和删除操作。
public class NewsService
{
private readonly List
_newsList = new List (); public List
GetNewsList() {
return _newsList;
}
public void AddNews(News news)
{
_newsList.Add(news);
}
public News GetNewsById(int id)
{
return _newsList.FirstOrDefault(n => n.Id == id);
}
public void EditNews(News news)
{
var existingNews = GetNewsById(news.Id);
if (existingNews != null)
{
existingNews.Title = news.Title;
existingNews.Content = news.Content;
}
}
public void DeleteNews(int id)
{
var newsToDelete = GetNewsById(id);
if (newsToDelete != null)
{
_newsList.Remove(newsToDelete);
}
}
}
五、创建新闻控制器(Controller)
接下来,创建一个名为“NewsController”的控制器类,用于处理新闻相关的请求。
using Microsoft.AspNetCore.Mvc;
public class NewsController : Controller
{
private readonly NewsService _newsService;
public NewsController()
{
_newsService = new NewsService();
}
public IActionResult Index()
{
var newsList = _newsService.GetNewsList();
return View(newsList);
}
public IActionResult Create()
{
return View();
}
[HttpPost]
public IActionResult Create(News news)
{
_newsService.AddNews(news);
return RedirectToAction("Index");
}
public IActionResult Edit(int id)
{
var news = _newsService.GetNewsById(id);
if (news == null)
{
return NotFound();
}
return View(news);
}
[HttpPost]
public IActionResult Edit(News news)
{
_newsService.EditNews(news);
return RedirectToAction("Index");
}
public IActionResult Delete(int id)
{
var news = _newsService.GetNewsById(id);
if (news == null)
{
return NotFound();
}
_newsService.DeleteNews(id);
return RedirectToAction("Index");
}
}
六、创建新闻视图(View)
为了展示新闻列表和表单,我们需要创建对应的视图。
6.1 新闻列表视图(Index.cshtml)
@model List<News>
<h2>新闻列表</h2>
<table class="table">
<thead>
<tr>
<th>ID</th>
<th>标题</th>
<th>创建时间</th>
<th>操作</th>
</tr>
</thead>
<tbody>
@foreach (var news in Model)
{
<tr>
<td>@news.Id</td>
<td>@news.Title</td>
<td>@news.CreatedAt</td>
<td>
<a asp-action="Edit" asp-route-id="@news.Id">编辑</a>
<a asp-action="Delete" asp-route-id="@news.Id">删除</a>
</td>
</tr>
}
</tbody>
</table>
<a asp-action="Create">添加新闻</a>
6.2 新闻创建视图(Create.cshtml)
@model News
<h2>添加新闻</h2>
<form asp-action="Create">
<div class="form-group">
<label>标题</label>
<input asp-for="Title" class="form-control" />
</div>
<div class="form-group">
<label>内容</label>
<textarea asp-for="Content" rows="5" class="form-control"></textarea>
</div>
<div class="form-group">
<input type="submit" value="提交" class="btn btn-primary" />
</div>
</form>
6.3 新闻编辑视图(Edit.cshtml)
@model News
<h2>编辑新闻</h2>
<form asp-action="Edit" asp-route-id="@Model.Id">
<div class="form-group">
<label>标题</label>
<input asp-for="Title" class="form-control" />
</div>
<div class="form-group">
<label>内容</label>
<textarea asp-for="Content" rows="5" class="form-control"></textarea>
</div>
<div class="form-group">
<input type="submit" value="提交" class="btn btn-primary" />
</div>
</form>
七、运行项目
完成以上步骤后,运行项目,访问“/News”路径,即可看到新闻列表页面。点击“添加新闻”链接,可以添加新闻;点击新闻标题,可以编辑新闻;点击“删除”链接,可以删除新闻。
八、总结
本文详细介绍了在ASP.NET MVC中实现新闻编辑和删除操作的方法。通过创建模型、数据访问层、控制器和视图,我们实现了新闻的添加、编辑和删除功能。在实际项目中,您也许需要连接数据库来存储新闻数据,而不是使用内存中的列表。此外,您还可以添加更多的功能和优化,例如使用Entity Framework进行数据访问、实现分页显示、添加搜索功能等。