protected override DriverResult Editor(ContentPart part, ReferenceField field, IUpdateModel updater, dynamic shapeHelper) { var viewModel = new ReferenceFieldViewModel(); if (updater.TryUpdateModel(viewModel, GetPrefix(field, part), null, null)) { var settings = field.PartFieldDefinition.Settings.GetModel <ReferenceFieldSettings>(); if (settings.Required && viewModel.ContentId <= 0) { updater.AddModelError(GetPrefix(field, part), T("The field {0} is mandatory.", T(field.DisplayName))); } field.Value = viewModel.ContentId; } return(Editor(part, field, shapeHelper)); }
protected override DriverResult Editor(ContentPart part, ReferenceField field, dynamic shapeHelper) { var settings = field.PartFieldDefinition.Settings.GetModel <ReferenceFieldSettings>(); var contentItems = _projectionManager.GetContentItems(settings.QueryId) .Select(c => new SelectListItem { Text = Services.ContentManager.GetItemMetadata(c).DisplayText, Value = c.Id.ToString(CultureInfo.InvariantCulture), Selected = field.Value == c.Id }).ToList(); var model = new ReferenceFieldViewModel { ContentId = field.Value, Field = field, ItemList = new SelectList(contentItems, "Value", "Text", field.Value) }; return(ContentShape("Fields_Reference_Edit", GetDifferentiator(field, part), () => shapeHelper.EditorTemplate(TemplateName: TemplateName, Model: model, Prefix: GetPrefix(field, part)))); }