ASP.NET MVC5网站开发:修改及删除文章

在ASP.NET MVC5框架下开发一个能够修改和删除文章的Web应用程序,需要遵循MVC(Model-View-Controller)设计模式,本文将详细介绍如何实现这两个功能,包括模型定义、控制器逻辑和视图展示。
一、准备工作
1、创建ASP.NET MVC5项目:打开Visual Studio,选择“新建项目”,在模板中选择“ASP.NET Web Application (.NET Framework)”,点击“确定”,在弹出的窗口中选择“MVC”模板,设置项目名称和位置后完成创建。
2、配置数据库连接:在Web.config文件中添加数据库连接字符串,确保应用能连接到你的数据库。
3、实体模型定义:假设已有一个简单的Article类作为数据模型,包含ID、标题、内容等属性。
public class Article
{
public int Id { get; set; }
public string Title { get; set; }
public string Content { get; set; }
}
4、数据库上下文:使用Entity Framework Code First来操作数据库。
public class BlogDbContext : DbContext
{
public BlogDbContext() : base("name=BlogDbContext") {}
public DbSet<Article> Articles { get; set; }
}
二、实现修改文章功能

1、控制器方法:在ArticlesController中添加编辑和更新文章的方法。
public ActionResult Edit(int id)
{
using (var db = new BlogDbContext())
{
var article = db.Articles.Find(id);
if (article == null) return HttpNotFound();
return View(article);
}
}
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Edit(Article article)
{
if (ModelState.IsValid)
{
using (var db = new BlogDbContext())
{
db.Entry(article).State = EntityState.Modified;
db.SaveChanges();
return RedirectToAction("Index");
}
}
return View(article);
}
2、视图页面:创建或编辑~/Views/Articles/Edit.cshtml文件,用于显示表单供用户输入修改后的文章信息。
@model YourNamespace.Models.Article
@using (Html.BeginForm())
{
@Html.AntiForgeryToken()
@Html.HiddenFor(model => model.Id)
<div class="form-group">
@Html.LabelFor(model => model.Title)
@Html.EditorFor(model => model.Title, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.Title, "", new { @class = "text-danger" })
</div>
<div class="form-group">
@Html.LabelFor(model => model.Content)
@Html.TextAreaFor(model => model.Content, new { @class = "form-control" })
@Html.ValidationMessageFor(model => model.Content, "", new { @class = "text-danger" })
</div>
<button type="submit" class="btn btn-primary">保存更改</button>
}
三、实现删除文章功能
1、控制器方法:在ArticlesController中添加删除文章的方法。
public ActionResult Delete(int id)
{
using (var db = new BlogDbContext())
{
var article = db.Articles.Find(id);
if (article == null) return HttpNotFound();
db.Articles.Remove(article);
db.SaveChanges();
return RedirectToAction("Index");
}
}
2、视图链接:在文章列表视图(如Index.cshtml)中为每篇文章添加删除链接。
@foreach (var item in Model)
{
<tr>
<td>@item.Title</td>
<td>@item.Content</td>
<td>
@Html.ActionLink("编辑", "Edit", new { id = item.Id }) |
@Html.ActionLink("删除", "Delete", new { id = item.Id }, new { onclick = "return confirm('确定要删除这篇文章吗?');" })
</td>
</tr>
}
四、归纳与问题解答
通过上述步骤,我们成功实现了ASP.NET MVC5项目中的文章修改和删除功能,这两个功能是Web应用中常见的操作,掌握它们的实现对于开发者来说非常重要。

问题1:如何在修改文章时验证输入数据的有效性?
解答:可以使用ASP.NET MVC的数据注解特性来验证输入数据的有效性,在Article模型中添加数据注解:
[Required(ErrorMessage = "标题是必须的")]
[StringLength(100, ErrorMessage = "标题长度不能超过100个字符")]
public string Title { get; set; }
[Required(ErrorMessage = "内容是必须的")]
[DataType(DataType.MultilineText)]
public string Content { get; set; }
然后在视图中使用@Html.ValidationMessageFor显示验证错误消息。
问题2:如何防止CSRF攻击?
解答:ASP.NET MVC默认启用了防跨站请求伪造(CSRF)保护,在表单提交时,会生成一个隐藏的令牌字段(__RequestVerificationToken),并在服务器端进行验证,如果令牌不匹配,则拒绝请求,这是通过在视图中使用@Html.AntiForgeryToken()生成的,如上文中编辑文章的视图所示。
到此,以上就是小编对于“ASP.NET MVC5网站开发修改及删除文章”的问题就介绍到这了,希望介绍的几点解答对大家有用,有任何问题和不懂的,欢迎各位朋友在评论区讨论,给我留言。