我有以下文章編輯操作方法,其中包括[綁定]列表來限制,該模型粘結劑將綁定的屬性: -如何從數據庫中檢索我的操作方法中的對象屬性值?
[HttpPost]
public ActionResult Edit(Bind(Include="Note,DoctorID,VisitID,StatusID")] Visit visit)
{
if ((visit.EditableByAssingedDoctor(User.Identity.Name)) || (visit.EditableByCreatedBy(User.Identity.Name)))
{ try
{if (ModelState.IsValid)
{ entities.Entry(visit).State = EntityState.Modified;
repository.Save();
return RedirectToAction("Index"); } }
catch (DbUpdateConcurrencyException ex)
{ var entry = ex.Entries.Single();
var clientValues = (Visit)entry.Entity;
//code goes here
但由於訪問對象包含不包含在其他性能綁定列表,,所以我可以從數據庫中檢索訪問對象屬性的當前值。提示: - 我正在使用實體框架和數據庫優先方法。 BR
更新: - 這裏是GET編輯操作方法: -
public ActionResult Edit(int id)
{
Visit visit = repository.GetVisit(id);
if ((visit.EditableByAssingedDoctor(User.Identity.Name)) || (visit.EditableByCreatedBy(User.Identity.Name)))
{
ViewBag.DoctorID = new SelectList(Membership.GetAllUsers(), "Username", "Username", visit.DoctorID);
ViewBag.StatusID = new SelectList(repository.FindAllVisitStatus(), "StatusID", "Description", visit.StatusID);
return View(visit);
}
else { return View("NotFound");}
}
我提供HTTPGET操作方法.. – 2012-04-26 19:29:33
關於VisitID它已經包含在綁定列表中。 – 2012-04-26 19:34:48
優秀!那麼,在你的post方法中,只需執行repository.GetVisit(visit.VisitId)並在更新之前執行相同的檢查以查看它是否可編輯。 – brightgarden 2012-04-26 19:39:15