ASP.NET MVC入门教程(六)文章的管理
本部分内容主要包括
1.文章的编辑:文章的编辑部分前端视图与发表文章的视图基本一致
2.文章的删除
一、文章的编辑
1.创建文章的编辑视图
在Article控制器的Edit(int id)方法内右键单击,选择添加视图
将Create视图的代码复制到Eidt视图中。
2.在Edit(int id)方法中输入以下代码。
对于编辑,要先根据其id取得文章的内容,并在视图上进行呈现,以便于用户进行内容的修改.在操作之前,先修改一下ArticleCreateViewModel视图模型,为其加上id属性。如果我们编辑也使用该视图模型,就必须有Id,否则,我们在更新记录时,要用到其Id。如果不想修改该模型,就重新另建一个视图模型即可。
public int id { get; set; }
[Display(Name ="文章标题")]
[Required(ErrorMessage ="文章标题不能为空")]
[MinLength(6,ErrorMessage ="文章标题不能少于6个字符")]
[MaxLength(30,ErrorMessage ="文章标题不能超过30个字符")]
public string title { get; set; }
// GET: Article/Edit/5
public ActionResult Edit(int id)
{
tb_article tArticle = db.tb_article.Find(id);
ArticleCreateViewModel article = new ArticleCreateViewModel();
article.id = id;
article.title = tArticle.Name;
article.author = tArticle.Author;
article.content = tArticle.Content;
return View(article);
}
3.测试是否以在视图上显示数据,首先打开列表页(Index),从列表页点击编辑文章,以打开编辑文章视图页。
4.编写[HttpPost]的Edit方法
// POST: Article/Edit/5
[HttpPost]
[ValidateAntiForgeryToken]
[ValidateInput(false)]
public ActionResult Edit(ArticleCreateViewModel article)
{
if (ModelState.IsValid)
{
tb_article tArticle = db.tb_article.Find(article.id);
tArticle.Name = article.title;
tArticle.Author = article.author;
tArticle.Content = article.content;
db.Entry(tArticle).State = System.Data.Entity.EntityState.Modified;
db.SaveChanges();
return RedirectToAction("Index");
}
return View(article);
}
二、文章的删除
1.修改文章列表页
删除文章时,直接在文章列表页点击“删除文章”,应该弹出对话框,询问用户是否确定删除,如果确定删除,则删除,否则,什么也不做。
<td>
@Html.ActionLink("编辑文章", "Edit", new { id=item.id }) |
@Html.ActionLink("文章内容", "Details", new { id=item.id }) |
@Html.ActionLink("删除文章", "Delete", new { id=item.id }, new { @onclick = "return confirm('确定要删除此记录吗?')" })
</td>
new { @onclick = "return confirm('确定要删除此记录吗?')" }用于弹出询问对话框,询问用户是否确定删除文章
2.编写删除文章业务代码
删除Delete(int id)方法。在下面的的Delete方法中输入以下代码
[HttpPost]
public ActionResult Delete(int id)
{
tb_article article = db.tb_article.Find(id);
db.tb_article.Remove(article);
db.SaveChanges();
return RedirectToAction("Index");
}
三、测试文章的删除