在做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去找实体数据。不修改你就不赋值就是了,