Try our conversational search powered by Generative AI!
AI OnAI Off
Jul 12, 2016
Nov 14, 2016
CMS Core
Closed, Fixed and tested
When creating a new page and cloning a block to the new page, the block data is empty.
Steps to reproduce
1. The property of block on a page type.
public class StandardPage : SitePageData { public virtual ImageSliderBlock ImageSlider { get; set; } }
2. Block model.
public class ImageSliderBlock : BlockData { [CultureSpecific] [Editable(true)] [Display( Name = "SlideItems ", GroupName = TabNames.ImageSlide, Order = 1)] public virtual LinkItemCollection SlideItems { get; set; } }
3. Cloning code.
// the value of ImageSlider is already set on the OriginalPage var originalPage = DataFactory.Instance.Get<StandardPage>(new PageReference(237)); var contentRepository = ServiceLocator.Current.GetInstance<IContentRepository>(); var newMirrorPage = contentRepository.GetDefault<StandardPage>(PageReference.StartPage).CreateWritableClone() as StandardPage; if (originalPage.Property["ImageSlider"].Value != null) { newMirrorPage.Name = "NewMirrorPage"; var cloneImageSlider = ((ImageSliderBlock)originalPage.Property["ImageSlider"].Value).CreateWritableClone(); newMirrorPage.Property["ImageSlider"].Value = cloneImageSlider; DataFactory.Instance.Save(NewMirrorPage, SaveAction.Publish, AccessLevel.Publish); }
Expected: The local block's data should be copied to a new page.