关闭

MVC3.0 修改操作

标签: MVC
547人阅读 评论(0) 收藏 举报
分类:

  #region 0.4 显示要修改的数据 +ActionResult Modify(int id)
        [HttpGet]   

public ActionResult Modify(int id)
        {
            //1.根据id 查询数据库,返回的集合中 拿到 第一个 实体对象
            BlogArticle art = (from a in db.BlogArticles where a.AId == idselect 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 });//遍历集合生成SelectListItem 集合并返回给上面的集合
            //将生成的文章分类 下拉框选项集合 设置给 ViewBag
            ViewBag.CateList = listItem;
            
            //List<SelectListItem> list;


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

   #region 0.5 执行修改 +ActionResult Modify(BlogArticle model)
        [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);
            }
        } 
        #endregion

知识点生成表单。

@model MVCBlog.Models.BlogArticle
<!--指定页面Model 属性 的类型-->
@{
    Layout = null;
}

 @using (Html.BeginForm("Modify", "Home", FormMethod.Post))
 


        <table id="tbList">
            <tr>
                <td colspan="2">修改 @Html.HiddenFor(a=>a.AId) </td>
            </tr>
            <tr>
                <td>标题:</td>
                @*<td>@Html.TextBox("txtName",(object)Model.ATitle)</td>*@


                <!--使用HtmlHelper的强类型方法 直接 从 Model 中 根据 ATitle 属性生成文本框-->
                <td>@Html.TextBoxFor(a=>a.ATitle)</td>
            </tr>
            <tr>
                <td>分类:</td>
                <!--使用强类型方法生成下拉框,并自动根据 model属性里的ACate值 设置 下拉框的默认选中项-->
                <td>@Html.DropDownListFor(a=>a.ACate,ViewBag.CateList as IEnumerable<SelectListItem>)</td>
            </tr>
            <tr>
                <td>内容:</td>
                <!--使用HtmlHelper的强类型方法 直接 从 Model 中 根据 AContent 属性生成文本域-->
                <td>@Html.TextAreaFor(a => a.AContent, 10, 60, null)</td>
            </tr>
            <tr>
                <td colspan="2"><input type="submit" value="确定修改" /> @Html.ActionLink("返回","Index","Home")</td>
            </tr>
        </table>
    }

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:69035次
    • 积分:1276
    • 等级:
    • 排名:千里之外
    • 原创:48篇
    • 转载:66篇
    • 译文:2篇
    • 评论:3条
    最新评论