public ActionResult Raw(int id, string xmlData, string next) { var version = Entities().VariantVersions.Find(id); if (version == null) { return(HttpNotFound()); } UserService users = GetService <UserService>(); if (!users.IsAllowedToEdit(version.Variant, User.Identity.Name)) { return(new HttpUnauthorizedResult()); } DefinitionService definitions = GetService <DefinitionService>(); string errors; if (!definitions.ValidateXml(xmlData, out errors)) { ModelState.AddModelError("data", "Error validating XML data: " + errors); var model = new RawModel(version); model.XmlData = xmlData; return(View(model)); } version.Definition = xmlData; Entities().SaveChanges(); if (next == "done") { return(RedirectToAction("Edit", "Variants", new { id = version.VariantID })); } return(RedirectToAction("Raw", new { id })); }