public ActionResult Page(string Id, PageEditVM model) { AmendPageVM(model); if (ModelState.IsValid && !string.IsNullOrEmpty(model.Page.Title) && !string.IsNullOrEmpty(model.Page.Address)) { if (!(string.Compare(model.Page.Address, "Index", true) == 0 ^ model.Page.ParentId == 0)) { if (string.IsNullOrEmpty(Id))//new { SqlRepository repository = new SqlRepository(); int newPageId = repository.CreatePage(model.Page); if (newPageId != 0) { return(RedirectToAction("Page", "Administration", new { Id = newPageId, Message = "Страница создана" })); } else { ModelState.AddModelError("", "Ошибка. Возможно, адрес страницы не уникальный"); } } else // modifying existing page { SqlRepository repository = new SqlRepository(); bool result = repository.UpdatePage(model.Page); if (result) { ViewBag.Message = "Изменения успешно сохранены"; } else { ModelState.AddModelError("", "Ошибка. Возможно, адрес страницы не уникальный"); } } } else { ModelState.AddModelError("", "Может быть только одна страница с адресом 'Index'"); } } else { ModelState.AddModelError("", "Изменения не сохранены"); } return(View("PageEdit", model)); }