public ActionResult Page(string Id, string message) { Page _page; if (string.IsNullOrEmpty(Id))//new { _page = new Page(); ViewBag.IsIndex = false; } else { int pageID = Convert.ToInt32(Id); SqlRepository repository = new SqlRepository(); _page = repository.GetPage(pageID); ViewBag.Message = message; } if (string.Compare(_page.Address, "Index", true) == 0) { return(RedirectToAction("IndexEdit", "Administration")); //Admin/IndexEdit } else { PageEditVM _VM = new PageEditVM(_page); return(View("PageEdit", _VM)); } }
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)); }
void AmendPageVM(PageEditVM model) { if (!string.IsNullOrEmpty(model.Page.Title)) { model.Page.Title.Trim(); } if (!string.IsNullOrEmpty(model.Page.Description)) { model.Page.Description.Trim(); } if (!string.IsNullOrEmpty(model.Page.Keywords)) { model.Page.Keywords.Trim(); } if (!string.IsNullOrEmpty(model.Page.Address)) { model.Page.Address.Trim(); } //model.Page.Address = Regex.Replace(model.Page.Address, @"[^A-Za-z0-9$]", "", RegexOptions.ECMAScript); }