public ActionResult Update(ListItemModel model) { if (!CheckPermission(ListsPermissions.ManageLists)) { return(new HttpUnauthorizedResult()); } var listItem = model.Id != 0 ? listItemService.GetById(model.Id) : new ListItem(); listItem.Title = model.Title; listItem.PictureUrl = model.PictureUrl; listItem.Position = model.Position; listItem.Enabled = model.Enabled; listItem.MetaKeywords = model.MetaKeywords; listItem.MetaDescription = model.MetaDescription; if (!string.IsNullOrEmpty(model.Slug)) { listItem.Slug = model.Slug.Trim(' ', '/', '.', '~'); } if (string.IsNullOrEmpty(listItem.Slug)) { listItem.Slug = model.Title.ToSlugUrl(); } if (model.Id == 0) { listItem.CreatedDate = DateTime.UtcNow; listItem.ModifiedDate = listItem.CreatedDate; listItem.ListId = model.ListId; } else { listItem.ModifiedDate = DateTime.UtcNow; } var fields = listFieldService.GetFields(listItem.ListId); var values = fields.ToDictionary(field => field.Name, field => field.GetControlFormValue(this, WorkContext)); listItem.Values = values.SharpSerialize(); listItemService.Save(listItem); // Save categories if (model.Id != 0) { listItemService.RemoveCategories(model.Id); } if (model.Categories != null && model.Categories.Length > 0) { listItemService.AddCategories(listItem.Id, model.Categories); } return(new AjaxResult().Redirect(Url.Action("Index", "ListItem", new { listId = model.ListId }))); }