日期:2014-05-20  浏览次数:20863 次

MVC 使用EF修改数据
在做MVC开发时,使用EF修改数据碰到如下问题:
1.信息编辑页面
 @using (Html.BeginForm())
    { 
        @Html.ValidationSummary(true)
        @Html.HiddenFor(model => model.WeiboID)
        @Html.HiddenFor(model => model.CreateDate)//这里使用隐藏域
        @Html.HiddenFor(model => model.ReaderNumber)//这里使用隐藏域
        <div class="editor-line">
            @Html.LabelFor(model => model.Title)<br />
            @Html.EditorFor(model => model.Title)
            @Html.ValidationMessageFor(model => model.Title)
        </div>
        <div class="editor-line">
            @Html.LabelFor(model => model.Content)<br />
            @Html.TextAreaFor(model => model.Content, new { style = "width:850px; height:400px;" })
            @Html.ValidationMessageFor(model => model.Content)
        </div>
        <p>
            <input type="submit" value="保 存" class="editor-botton" />
        </p>
    }

2.提交到Action处理
 public ActionResult WeiboEdit(Weibo model)
        {
            if (ModelState.IsValid)
            {
                model.EditDate = DateTime.Now;
                db.Entry(model).State = EntityState.Modified;
                db.SaveChanges();
                return RedirectToAction("Weibo");
            }
            return View(model);
        }


在这个过程中如果我不在编辑页面使用隐藏域,把编辑后的数据提交到Action处理后CreateDate和ReaderNumber这两个数据的值会被清空呢?有没有好的办法解决,如果有很多列不需要修改那不是要很多隐藏域?
------解决方案--------------------
传WeiboID就行了,根据ID去找实体数据。不修改你就不赋值就是了,