学用MVC4做网站五:5.4删除文章
2013-01-27 00:52
155 查看
前几天把添加、修改功能都做了,今天开始写删除功能。删除文章既要删除文章本身同时也要在公共模型中删除对应项。
首先写从数据库中删除文章的函数。打开ArticleRepository修改Delete的函数。有上次的教训这次明白了传递的id应该是公共模型id。
很简单先在对应的公共模型删除,再删除文章,然后保存、返回。
第二步做UserDelete(int id) action。动作中先是ArticleRepository.Delete(id)进行删除并返回是否成功。然后判断请求类型:如果是Ajax方式返回是否成功的json类型;否则跳转到提示页或错误页。
第三步开始做删除的前台。就不单独写视图,直接写在“我的文章中”。打开UserOwn.cshtml,修改删除连接的ActionLink为@Html.ActionLink("删除", "UserDelete", new { id = item.CommonModelId }, new { @class = "btnDel" })
然后写点击删除链接的js代码
先提示“你确定要删除该文章吗?”,如果确定则采用post方式请求删除,并返回相应结果给出相应提示。
F5 删除一下文章看。
首先写从数据库中删除文章的函数。打开ArticleRepository修改Delete的函数。有上次的教训这次明白了传递的id应该是公共模型id。
/// <summary> /// 删除文章 /// </summary> /// <param name="commonModelId">公共模型id</param> /// <returns></returns> public override bool Delete(int commonModelId) { dbContext.CommonModels.Remove(dbContext.CommonModels.SingleOrDefault(cM => cM.CommonModelId == commonModelId)); dbContext.Articles.Remove(dbContext.Articles.SingleOrDefault(a => a.CommonModelId == commonModelId)); return dbContext.SaveChanges() > 0; }
很简单先在对应的公共模型删除,再删除文章,然后保存、返回。
第二步做UserDelete(int id) action。动作中先是ArticleRepository.Delete(id)进行删除并返回是否成功。然后判断请求类型:如果是Ajax方式返回是否成功的json类型;否则跳转到提示页或错误页。
/// <summary> /// 删除文章 /// </summary> /// <param name="id">公共模型id</param> /// <returns></returns> [UserAuthorize] public ActionResult UserDelete(int id) { bool _deleted = articleRsy.Delete(id); if (Request.IsAjaxRequest()) { return Json(_deleted); } else { if (_deleted) { Notice _n = new Notice { Title = "删除文章成功", Details = "您已经成功删除了该文章!", DwellTime = 5, NavigationName = "我的文章", NavigationUrl = Url.Action("UserOwn", "Article") }; return RedirectToAction("UserNotice", "Prompt", _n); } else { Error _e = new Error { Title = "删除文章失败", Details = "在删除文章时发生错误", Cause = "该文章已经被删除", Solution = Server.UrlEncode("<li>返回<a href='" + Url.Action("UserOwn", "Article") + "'>我的文章</a>页面,输入正确的信息后重新操作</li><li>返回<a href='" + Url.Action("UserDefault", "Article") + "'>文章管理首页</a>。</li><li>联系网站管理员</li>") }; return RedirectToAction("ManageError", "Prompt", _e); } } }
第三步开始做删除的前台。就不单独写视图,直接写在“我的文章中”。打开UserOwn.cshtml,修改删除连接的ActionLink为@Html.ActionLink("删除", "UserDelete", new { id = item.CommonModelId }, new { @class = "btnDel" })
然后写点击删除链接的js代码
<script type="text/javascript"> $(".btnDel").click(function () { if (confirm("你确定要删除该文章吗?")) { var url = $(this).attr("href"); $.post(url, null, function (data) { if (data) { alert("删除成功!"); window.location.reload(); } else { alert("删除失败!"); } }); } return false; }); </script>
先提示“你确定要删除该文章吗?”,如果确定则采用post方式请求删除,并返回相应结果给出相应提示。
F5 删除一下文章看。
相关文章推荐
- 判断、添加和删除WordPress置顶文章的相关PHP函数小结
- 今天删除了所有的文章,因为是转贴的,自己也没有心思写这方面的文章,但痛定思痛,从今后,贴出来的文章要是一定要是自己写的
- 学用MVC4做网站五:5.7显示文章
- 旧文章都删除掉,重新写
- js实现删除文章弹窗提示是否确认
- 一些感兴趣的文章的链接(看后删除)
- Redhat 5.4 Oracle 10g RAC 删除节点
- [新手入门]快速学习 ADO.NET Entity Framework系列文章 #4 -- 数据新增、删除、修改(ObkectContext的 .SaveChange()方法)
- 删除文章是一种犯罪
- dede批量删除文章
- 博为峰Java技术文章 ——JavaEE Hibernate删除数据
- dedecms织梦如何删除所有的文章?
- LINUX删除文章的前几行
- CSDN删除都删除不了文章,坑爹啊,蒋涛真是坑爹啊CSDN删除都删除不了文章,坑爹啊,蒋涛真是坑爹啊CSDN删除都删除不了文章,坑爹啊,蒋涛真是坑爹啊
- 删除文章修订版,提高WordPress速度
- phpcms V9 栏目下的文章全部删除后栏目还是无法删除解决方法
- dedecms删除所有栏目或文章后,新建ID不从1开始的解决方法
- 最新微信文章编辑器源码PHP+MYSQL架构后台可添加或删除模版
- Asp.net MVC2.0系列文章-编辑和删除新闻操作
- 注意:php5.4删除了session_unregister函数