public ProductAttributeDisplay PutProductAttributeDetachedContent( [ModelBinder(typeof(ProductAttributeContentSaveBinder))] ProductAttributeContentSave attributeContentItem) { var contentTypeAlias = attributeContentItem.DetachedContentType.UmbContentType.Alias; var contentType = _contentTypeService.GetContentType(contentTypeAlias); if (contentType == null) { var nullRef = new NullReferenceException("Could not find ContentType with alias: " + contentTypeAlias); MultiLogHelper.Error <ProductOptionApiController>("Failed to find content type", nullRef); throw nullRef; } var attribute = attributeContentItem.Display; attribute.DetachedDataValues = DetachedContentHelper.GetUpdatedValues <ProductAttributeContentSave, ProductAttributeDisplay>(contentType, attributeContentItem); var destination = _productOptionService.GetProductAttributeByKey(attribute.Key); destination = attribute.ToProductAttribute(destination); ((ProductOptionService)_productOptionService).Save(destination); return(destination.ToProductAttributeDisplay(contentType, DetachedValuesConversionType.Editor)); }