ASP.NET MVC 0之编辑和删除新闻操作("ASP.NET MVC 0:新闻编辑与删除操作详解")

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

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进行数据访问、实现分页显示、添加搜索功能等。


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

文章标签: 后端开发


热门