由于EF的框架是4.1的,所以现在如果想更新部分字段的话,只能从数据库中查出一次数据(不用查的方法还没找到,需要继续研究),不能像5.1的版本可以不用查。

更新的Action需要用到[HttpGet]和[HttpPost],否则会不知道具体执行哪个方法。

代码

[HttpGet]public ActionResult Modify(int id){BlogArticle art = (from a in db.BlogArticles where a.AId == id select a).FirstOrDefault();       //第二种查询方式BlogArticle art1 = db.BlogArticles.Where(d => d.AId == id).FirstOrDefault();//查询分类list 先将分类表中数据查询出来,然后转换成list,然后在将这个list转换成IEnumerable类型的listIEnumerable<SelectListItem> list = (from c in db.BlogArticleCates where c.IsDel == false select c).ToList().Select(c=>new SelectListItem { Value = c.Id.ToString(), Text = c.Name });ViewBag.cateList = list;return View(art);}[HttpPost]public ActionResult Modify(BlogArticle model){try{BlogArticle cate = db.BlogArticles.Single(x => x.AId == model.AId);cate.ATitle = model.ATitle;cate.ACate = model.ACate;cate.AContent = model.AContent;db.SaveChanges();return RedirectToAction("Index", "Home");}catch (Exception ex){return Content("修改失败" + ex.ToString());}}

前台代码:

 @model MvcBlog.Models.BlogArticle @using(Html.BeginForm("Modify","Home",FormMethod.Post)){<table><tr><td colspan=2>修改 @Html.HiddenFor(d=>d.AId)</td></tr><tr><td>标题</td><td>@Html.TextBoxFor(d=>d.ATitle)</td></tr><tr><td>内容</td><td>@Html.TextAreaFor(d=>d.AContent,10,20,null)</td></tr><tr><td>分类</td><td>@Html.DropDownListFor(a=>a.ACate,ViewBag.cateList as IEnumerable<SelectListItem>)</td></tr><tr><td colspan=2><input type="submit" value="保存" />@Html.ActionLink("返回","Index","Home")</td></tr></table>}

在Action中,可以直接使用return View(art)返回这个model到页面的构造函数中。在页面中用@model MvcBlog.Models.BlogArticle,来将传入的这个model

转换成指定类型,否则页面不知道model是哪种类型,转换之后,直接就可以用model使用这个对象了。

对于修改的分类字段,需要用下拉列表进行存放数据,所以需要在Action中查出一遍分类的数据,然后用ViewBag传到前台。

前台页面生成这些控件,一般都用代码直接生成,对比以前比较方便。

另外,Html.BeginForm,如果不在外层加using的话,将不会生成</form>的结束标记,所以需要注意,要用using,暂时

转载于:https://www.cnblogs.com/y8932809/p/4384085.html

MVC3学习 四 EF删除操作相关推荐

  1. Tensorflow学习四---高阶操作

    Tensorflow学习四-高阶操作 Merge and split 1.tf.concat 拼接 a = tf.ones([4,32,8]) b = tf.ones([2,32,8]) print( ...

  2. HBase学习(四) HBase API操作

    目录 准备工作 创建maven项目 添加依赖 API操作 创建HBase连接 创建HBase表 删除表 向表中插入数据 查看数据 过滤器操作 全部代码 注意事项 准备工作 创建maven项目 添加依赖 ...

  3. 从零开始学习jQuery (四) 使用jQuery操作元素的属性与样式

    本系列文章导航 从零开始学习jQuery (一) 开天辟地入门篇 从零开始学习jQuery (二) 万能的选择器 从零开始学习jQuery (三) 管理jQuery包装集 从零开始学习jQuery ( ...

  4. 数据结构学习笔记:顺序表的删除操作及其演化题目总结

    目录 前言 例题 类似题目1 类似题目2 类似题目3 类似题目4 类似题目5 结语 前言 文章代码皆在Dev-C++ 5.11中测试,主要是总结一些方法,从而总结一些规律使自己进一步地深化学习内容,仅 ...

  5. [jQuery学习系列四 ]4-Jquery学习四-事件操作

    [jQuery学习系列四 ]4-Jquery学习四-事件操作 前言: 今天看知乎偶然看到中国有哪些类似于TED的节目, 回答中的一些推荐我给记录下来了, 顺便也在这里贴一下: 一席 云集 听道 推酷 ...

  6. [JSP暑假实训] 四.MyEclipse+Servlet+JSP实现火车票网站查询、修改、删除操作

    本系列文章是作者暑假给学生进行实训分享的笔记,主要介绍MyEclipse环境下JSP网站开发,包括JAVA基础.网页布局.数据库基础.Servlet.前端后台数据库交互.DAO等知识. 前一篇文章讲解 ...

  7. 前端学习(2677):懂代码之表格BaseTable删除操作

    1第一步 <el-table-column label="操作" width="180" align="center">< ...

  8. 双链表插入、删除操作单步解析(十四)

    1.双链表定义 单链表只能向后操作,不能向前操作.双链表可以向前和向后操作. 双链表特点:以下图解释 一个前驱指针:ai的前驱指针,指向ai-1结点,即存放ai-1的地址. 数据域:存放数据 一个后驱 ...

  9. sharepoint 2016 学习系列篇(14)-自定义列表应用篇-(3)列表数据的新增,修改,删除操作

    前面添加完列表的字段之后,接下来介绍列表数据的新增,修改,删除操作,不需要开发,就能实现数据的新增,修改,删除等操作. 重新返回到列表的http://192.168.1.73:7003/Lists/U ...

最新文章

  1. skiplist 跳表(1)
  2. 077_html5拖放
  3. Beautiful Soup的用法
  4. bash 的进站欢迎提示
  5. CentOS 6.4 卸载与安装桌面
  6. 对于0基础来说,Python 中有哪些难以理解的概念?我似乎明白了
  7. 牛客 - 17968 - xor序列 - 线性基
  8. 安卓应用安全指南 4.1.3 创建/使用活动 高级话题
  9. 7个碎片的excel重组实验
  10. 多元函数微分学(微积分)
  11. AI分析:微信热文有什么特点?兼谈中文分词算法
  12. 关于便携式打印机程序开发(一、原生安卓蓝牙调用)
  13. 借贷系统后台操作说明
  14. 新手如何进行PLC的远程上下载和编程调试?
  15. [转载]使用Java生成带有下划线字体的文字
  16. C++ :四种强制类型转换
  17. ESP32C3串口通信
  18. LOCAL_PRIVILEGED_MODULE 详解(1)
  19. 3GPP向ITU提交5G候选技术提案 NB-IoT确定为5G候选技术组成部分
  20. 需求管理之相关方分析

热门文章

  1. 新手怎么学以太坊区块链开发?
  2. 如何撰写将赢得客户青睐的自由职业者提案和免费模板
  3. 中超赛程来100wan点in_不干了:中超球队改名“硬重启”,球迷组织绝望解散
  4. UVa 167(八皇后)、POJ2258 The Settlers of Catan——记两个简单回溯搜索
  5. 项目总结10:通过反射解决springboot环境下从redis取缓存进行转换时出现ClassCastException异常问题...
  6. C#隐藏手机号中间四位为*
  7. Health Check in eShop -- 解析微软微服务架构Demo(五)
  8. 数据中心节能大法 —— 尽在上海11月中国数据中心展
  9. bzoj 1691: [Usaco2007 Dec]挑剔的美食家
  10. 解密FFmpeg播放track mode控制