public ActionResult Edit([Bind] NotepadEntry entry) { Dictionary <string, List <string> > errors = new Dictionary <string, List <string> >(); if (!ModelState.IsValid) { for (int i = 0; i < ModelState.Keys.Count; i++) { string key = ModelState.Keys.ElementAt(i); if (!ModelState.IsValidField(key)) { errors.Add(key, (from error in ModelState.Values.ElementAt(i).Errors select error.ErrorMessage).ToList <string>()); } } } else { NotepadEntry original = this.repository.Find(entry.Id); if (original != null) { ConditionCollection conditions = new ConditionCollection(); conditions.AddCondition(new EqualCondition { Field = "PhoneNumber", Value = entry.PhoneNumber }); if (original.PhoneNumber != entry.PhoneNumber && this.repository.SelectEntries(0, 1, conditions, null).Count == 1) { errors.Add("PhoneNumber", new List <string> { "Записи таким номером уже существует" }); } else { this.repository.Update(entry); return(Json(new { success = true, entry = entry })); } } else { errors.Add("PhoneNumber", new List <string> { "Записи с таким номером не существует" }); } } return(Json(new { success = false, errors = errors })); }
/** * Action for editing existed entity. * Returns partial form with filled fields. */ public ActionResult Edit(int id) { NotepadEntry notepad = this.repository.Find(id); if (notepad != null) { this.ViewBag.Data = notepad; this.ViewBag.Today = DateTime.Now; return(View()); } else { return(RedirectToAction("Create", "MyController")); } }