前几天把添加、修改功能都做了,今天开始写删除功能。删除文章既要删除文章本身同时也要在公共模型中删除对应项。

首先写从数据库中删除文章的函数。打开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 删除一下文章看。

转载于:https://www.cnblogs.com/mzwhj/archive/2013/01/27/2878406.html

学用MVC4做网站五:5.4删除文章相关推荐

  1. 学用MVC4做网站五:5.1添加文章

    五.文章 在[ArticleController]添加[UserAdd()]action /// <summary>/// 添加文章/// </summary> [UserAu ...

  2. 学用MVC4做网站四:公共模型

    网站内可能包含文章.留言.产品等,这些内容都有像标题.发布日期,发布人,所属栏目--一部分共同数据,把这些数据做个公共模型放到一个单独模型中. 字段 名称 类型 必填 默认值 说明 CommonMod ...

  3. 学用MVC4做网站二:2.2添加用户组

    一.用户 二.用户组 2.1浏览用户组 2.2添加用户组 修改[Add]Action /// <summary>/// 添加用户组/// </summary>/// <r ...

  4. 8天学通MongoDB——第五天 主从复制

    随笔 - 218  文章 - 1  评论 - 3819 8天学通MongoDB--第五天 主从复制 从这一篇开始我们主要讨论mongodb的部署技术. 我们知道sql server能够做到读写分离,双 ...

  5. Python编程基础:第三十五节 文件删除Delete a File

    第三十五节 文件删除Delete a File 前言 实践 前言 我们这一节来介绍如何删除一个文件,这里需要用到函数os.remove(path)用于删除指定路径下的文件,os.rmdir(path) ...

  6. python与php做网站_学Python对做网站用处大吗?

    Python是一种简单的编程语言,用于网站开发用处当然是非常大的,无可厚非, 相对于Java.C.PHP.C++ 和 VB. Python作为一个很年轻的语言,是相当的优秀.著名的搜索引擎 Googl ...

  7. 零基础无实物一步一步学PLCS7-1200仿真(五)-四路简易抢答器控制

    本次项目为四路抢答器,通过本次项目了解项目开发流程,未来扩展多路抢答器只需要对程序进行微调即可. 项目要求: 1.有4组进行抢答,抢答按钮为SB1-SB4,对应4个抢答指示灯为L1-L4. 2.主持人 ...

  8. PHP实现文章的删除,php如何实现删除文章

    php如何实现删除文章 php删除文章的实现方法:首先通过"ob_start();"开启缓存:然后引入"require_coce("../conn.php&qu ...

  9. 使用IntelliJ IDEA开发SpringMVC网站(五)博客文章管理

    原文:使用IntelliJ IDEA开发SpringMVC网站(五)博客文章管理 摘要 通过对博客文章的管理,实现外键操作. 目录[-] 八.博客文章管理 1.查看文章 2.添加博客        3 ...

最新文章

  1. NSString 去掉前后空格或回车符
  2. LwIP 之六 详解动态内存管理 内存池(memp.c/h)
  3. wenstorm设置谷歌_WebStorm+Chrome调试Vue步骤
  4. Android 申请权限结果返回处理
  5. Python小白的数学建模课-04.整数规划
  6. linux程序ctrl c无法退出原因_「Linux」20节-在后台运行任务
  7. python 实现的键盘记录器 小功能
  8. 转件工程--实践者的研究方法阅读笔记1
  9. 数学中有关c语言的知识点总结,七年级数学基本函数的基本知识点归纳
  10. RabbitMQ项目实战——商户管理系统
  11. jquery api的整体解读
  12. linux,centos7环境下,安装RabbitMQ
  13. 主流区块链浏览器导航
  14. 傅里叶变换的性质及证明(CTFT)
  15. factory.BeanDefinitionStoreException: Failed to process import candidates for configuration class ..
  16. 快速上云(手把手教你把项目同步上云)
  17. “一瞬”一词出自梵典《僧祇律》 相当于0.36秒
  18. 黑苹果安装后不能启动Windows解决
  19. 怎么学习英文--英国人教你如何学习英文
  20. JavaScript函子(随笔)

热门文章

  1. 计算机组成原理—Cache主存块中的替换算法
  2. 通信网中的数据报子网和虚电路子网
  3. OpenGL基础45:光照矫正(下)之Gamma校正
  4. bzoj 3357: [Usaco2004]等差数列(DP+map)
  5. win7下U盘安装Ubuntu16.04双系统
  6. PHP程序显示时出现乱码
  7. 1180魔方阵(每日学习)宁波大学OJ
  8. 静态RAM(1K X 4位)2114原理介绍(抄原理图)
  9. Hibernate占位符?和:及JPA
  10. day08面向对象-内部类、异常