public ActionResult Edit(long id, XsQuestion questionToSave, FormCollection collection) { try { questionToSave = questionRepository.GetById(id); if (null != questionToSave) { questionToSave.RemoveAllTags(); questionToSave.Tags = new List<XsTag>(); String tags = RemoveExtraSpaces(collection["QuestionTags"].ToString()); String[] qTags = tags.Split(' '); foreach (String tag in qTags) { if (!String.IsNullOrEmpty(tag)) { String tagInvariantName = tag.ToLowerInvariant(); XsTag currentTag = tagRepository.GetTagByName(tagInvariantName); if (null == currentTag) { currentTag = new XsTag(); currentTag.Name = tagInvariantName; } questionToSave.AddTag(currentTag); } } questionToSave.Title = collection["Title"].ToString(); questionToSave.Content = collection["Content"].ToString(); questionToSave.ContentHtml = new Markdown().Transform(questionToSave.Content); questionToSave.Excerpt = Utils.CreateContentExcerpt(questionToSave.ContentHtml); questionToSave.UpdateDT = DateTime.UtcNow; ModelState.AddModelErrors(questionToSave.GetRuleViolations()); if (ModelState.IsValid) { try { questionToSave.ToAddToSearchIndex = true; questionRepository.Save(questionToSave); return RedirectToAction("Details", "Questions", new { id = questionToSave.ID, seoName = questionToSave.SlugTitle }); } catch (Exception ex) { log.Error("There was an error when saving the question in the DB " + ex.Message + "Inner Exception " + ex.InnerException); ViewData["ErrorMessage"] = "There was an error when saving the question in the DB!"; return View("Error"); } } else { return View(questionToSave); } } } catch { return View(questionToSave); } return View(questionToSave); }