private void Save(Models.UrlRedirect record, bool isNew) { // add any code to update other fields/tables here record.Save(); // add redirects to Route table //var app = HttpContext.ApplicationInstance as MvcApplication; //var routes = RouteTable.Routes; //routes.RemoveRouteByName("urlRedirect"+record.ID); //var route = new Route(record.RedirectFromUrl, new RouteValueDictionary(){ controller = "UrlRedirect", action = "Index", id = record.ID }, MvcUtil.SiteControllerNamespaceArray); //routes.InsertRouteAfter("urlRedirectPlaceholder", ); //routes.MapRoute("urlRedirect"+record.ID, ); }
protected ActionResult ProcessForm(Models.UrlRedirect record) { try { record.UpdateFromRequest(); if (record.RedirectFromUrl.EndsWith("/")) { record.RedirectFromUrl = record.RedirectFromUrl.RemoveCharsFromEnd(1); //remove traling slash JC 20140423 } if (record.RedirectToUrl == null) { record.RedirectToUrl = ""; } Validate(record); if (ModelState.IsValid) { Save(record, record.IsNewRecord); Web.InfoMessage = "Url Redirect " + record.GetName() + " saved."; } } catch (Exception e) { ModelState.AddModelError("Record", e.Message); } if (!ModelState.IsValid) { // invalid so redisplay form with validation message(s) return(View("UrlRedirectEdit", record)); } else if (Web.Request["SaveAndRefreshButton"] != null) { return(RedirectToEdit(record.ID)); } else if (Web.Request["DuplicateButton"] != null) { var newRecord = new Models.UrlRedirect(); newRecord.UpdateFrom(record); newRecord.Save(); Web.InfoMessage = "Copy of Url Redirect " + record.GetName() + " created. You are now editing the new copy."; return(RedirectToEdit(newRecord.ID)); } else { return(RedirectToReturnPage()); } }