MVC3学习 四 EF删除操作

由于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类型的list
            IEnumerable<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,暂时

时间: 2024-11-12 09:01:26

MVC3学习 四 EF删除操作的相关文章

MVC3学习 二 EF查询

EF操作数据库中的数据非常方便,例如查询: OumindBlogEntities db = new OumindBlogEntities(); public ActionResult Index() { //db.BlogArticles.Where(d => d.AIsDel == false) 的返回类型为DbQuery ,而DbQuery是延时加载的,也就是说只有当执行query.ToList();才执行查询语句 //DbQuery<MvcBlog.Models.BlogArticle&

Android学习四:数据库操作

1前言 android中使用SQLite作为数据库,在进行相关的开发的时候不需要导入包.SQLite起符合SQL标准,也有自己的一些特性,是一个轻量级的数据库. 2代码 简单的数据库类封装 package org.tonny.utils; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; pu

git学习(四)——git log操作

git log操作 log命令的作用:用于查看git的提交历史: git log命令显示的信息的具体含义: commit SHA-1 校验和  commit id Author 作者跟邮箱概要信息 Date 提交时间 git log操作 表示查看最近几次的提交 git log -数字 显示最近两次提交的不同点 git log -p -2 查看具体某个作者的提交 git log --author 输出简要的信息 git log --online 以一个简单的线串联起整个提交历史 git log -

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

原文:从零开始学习jQuery (四) 使用jQuery操作元素的属性与样式 本系列文章导航 从零开始学习jQuery (一) 开天辟地入门篇 从零开始学习jQuery (二) 万能的选择器 从零开始学习jQuery (三) 管理jQuery包装集 从零开始学习jQuery (四) 使用jQuery操作元素的属性与样式 从零开始学习jQuery (五) 事件与事件对象 从零开始学习jQuery (六) jQuery中的Ajax 从零开始学习jQuery (七) jQuery动画-让页面动起来!

红黑树学习笔记(3)-删除操作

1.设删除的节点为$z$,另外定义节点$x,y$如下: $y=\left\{\begin{matrix}z & z的左孩子或右孩子为空节点\\ Successor(z) & otherwise\end{matrix}\right.$ $x=\left\{\begin{matrix}y.left & y的左孩子不为空\\ y.right & otherwise\end{matrix}\right.$ 其中$Successor$函数的定义在这里 接下来,用$x$替换节点$y$,

ASP.NET MVC3 实例(六) 增加、修改和删除操作(二)

http://www.jquery001.com/asp.net-mvc3-instance-add-update-delete2.html 上篇我们在 ASP.NET MVC3 中实现了添加操作,由于时间关系没有完成修改.删除操作,我们新建了一个名为"Contact"的 Controller,并实现了添加方法,下边就让我们在此基础上来完成 ASP.NET MVC3 中的修改和删除操作. 首先,我们在 Contact 控制器类中添加一个名为 View()的方法,用来从 Contact

[原创]java WEB学习笔记24:MVC案例完整实践(part 5)---删除操作的设计与实现

本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱好者,互联网技术发烧友 微博:伊直都在0221 QQ:951226918 ---------------------------------

Html5 学习系列(四)文件操作API

原文:Html5 学习系列(四)文件操作API 引言 在之前我们操作本地文件都是使用flash.silverlight或者第三方的activeX插件等技术,由于使用了这些技术后就很难进行跨平台.或者跨浏览器.跨设备等情况下实现统一的表现,从另外一个角度来说就是让我们的web应用依赖了第三方的插件,而不是很独立,不够通用.在HTML5标准中,默认提供了操作文件的API让这一切直接标准化.有了操作文件的API,让我们的Web应用可以很轻松的通过JS来控制文件的读取.写入.文件夹.文件等一系列的操作,

浅谈MyBatis-Plus学习之自定义全局操作及逻辑删除

一.自定义全局操作介绍 MP中提供扩展AutoSqlInjector可以自定义各种想要的 sql ,注入到全局中,相当于自定义MP 自动注入的方法.也就是说继承BaseMapper<T>接口时就带有的方法,在加载相应的配置环境时就会注入. 二.实现自定义全局操作如下 2.1.在实现的Mapper接口中定义方法 public interface EmployeeMapper extends BaseMapper<Employee> { /** * 自定义注入方法 * @return