public ActionResult EditCRepOrderNo(EditCRepOrderNo_VM model) { // валидация введенных пользователем данных ValidateEditCRepOrderNo_VM(model, ModelState); if (ModelState.IsValid) { //валидация успешна, внесем изменения в БД CRepOrder tempRepOrder = repairRepository.CRepOrders.SingleOrDefault(cro => cro.CRO_ID == model.ID); tempRepOrder.CRO_No = model.No; try { repairRepository.SaveCRepOrder(tempRepOrder); } catch (Exception e) { ModelState.AddModelError("", e.Message); } } if (ModelState.IsValid) { //все операции успешны: переходим на окно просмотра карточки заявки return Redirect(model.ReturnURL); } else { //есть ошибки валидации - выведем их пользователю //добавим в модель недостающие данные model.Order = repairRepository.CRepOrders.SingleOrDefault(cro => cro.CRO_ID == model.ID); return View(model); } }
void ValidateEditCRepOrderNo_VM(EditCRepOrderNo_VM model, ModelStateDictionary state) { //номер заявки - должен быть присвоен, должен быть не более 10 символов if (model.No == null) state.AddModelError("NoError", "Пожалуйста укажите новый номер!"); else if (model.No.Length > 10) state.AddModelError("NoError", "Ошибка: номер заявки должен быть в пределах 10 символов"); }
public ActionResult EditCRepOrderNo(int ID, string returnURL) { CRepOrder order = repairRepository.CRepOrders.SingleOrDefault(o => o.CRO_ID == ID); EditCRepOrderNo_VM model = new EditCRepOrderNo_VM { No = order.CRO_No, ID = ID, ReturnURL = returnURL, Order = order }; return View(model); }