mvc中DropDownList的使用,及只生成修改了属性的SQL

Action:

public ActionResult Modify(int id)

        {
            //1.根据id 查询数据库,返回的集合中 拿到 第一个 实体对象
            BlogArticle art = (from a in db.BlogArticles where a.AId == id select a).FirstOrDefault();
            //2.生成 文章分类 下拉框 列表集合  <option value="1">文本</option>
            IEnumerable<SelectListItem> listItem = (from c in db.BlogArticleCates
                                          where c.IsDel == false select c).ToList()
                                          .Select(c=> new SelectListItem { Value = c.Id.ToString(), Text = c.Name });

            //将生成的文章分类 下拉框选项集合 设置给 ViewBag
            ViewBag.CateList = listItem;
            
            //List<SelectListItem> list;


            //3.将 art 传递 给 视图显示
            //ViewBag
            //ViewData
            //* “加载”视图,使用View的构造函数,将 数据 传给 视图上的 名为 Model 的 属性
            return View(art);

        }

View页面:

<td>@Html.DropDownListFor(a=>a.ACate,ViewBag.CateList as IEnumerable<SelectListItem>)</td>


只生成修改了属性的SQL:

Action:

 [HttpPost]
        /// <summary>
        /// 0.5 执行修改
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public ActionResult Modify(BlogArticle model)
        {
            try
            {
                //1.将实体对象 a.加入 EF 对象容器中,并 b.获取 伪包装类对象
                DbEntityEntry<BlogArticle> entry = db.Entry<BlogArticle>(model);
                //2.将包装类对象的状态设置为 unchanged
                entry.State = System.Data.EntityState.Unchanged;
                //3.设置 被改变的属性
                entry.Property(a => a.ATitle).IsModified = true;
                entry.Property(a => a.AContent).IsModified = true;
                entry.Property(a => a.ACate).IsModified = true;


                //4.提交到数据库 完成修改
                db.SaveChanges();
                //5.更新成功,则命令浏览器 重定向 到 /Home/List 方法
                return RedirectToAction("Index", "Home");
            }
            catch (Exception ex)
            {
                return Content("修改失败~~~" + ex.Message);
            }
        } 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值