博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MVC3学习 四 EF删除操作
阅读量:4633 次
发布时间:2019-06-09

本文共 2279 字,大约阅读时间需要 7 分钟。

由于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
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))    {        
修改 @Html.HiddenFor(d=>d.AId)
标题 @Html.TextBoxFor(d=>d.ATitle)
内容 @Html.TextAreaFor(d=>d.AContent,10,20,null)
分类 @Html.DropDownListFor(a=>a.ACate,ViewBag.cateList as IEnumerable
)
@Html.ActionLink("返回","Index","Home")
}

在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

你可能感兴趣的文章
Graphics优化策略-官篇3
查看>>
(转)javascript深入理解js闭包
查看>>
JS关闭当前父级div
查看>>
Spring事务事件监控
查看>>
Coding 代码push/commit/pull/git clone
查看>>
算法基础
查看>>
找出第二大的数
查看>>
第五周进度条
查看>>
nc命令
查看>>
工作流模块界面打开报错
查看>>
一点不懂到小白的linux系统运维经历分享
查看>>
asp.net IE10 下的bug
查看>>
grep的小技巧
查看>>
maven install 打包 报错 Cannot run program "gpg.exe": CreateProcess error
查看>>
abstract类中method
查看>>
mysql中 where in 用法
查看>>
Farseer.net轻量级开源框架 中级篇:探究ORM(Mapping)
查看>>
对象,对象引用变量理解
查看>>
14Oracle Database 高级事务,游标
查看>>
Qt无法调试Qvector
查看>>