London Dev Meetup Rescheduled! Due to unavoidable reasons, the event has been moved to 21st May. Speakers remain the same—any changes will be communicated. Seats are limited—register here to secure your spot!
AI OnAI Off
London Dev Meetup Rescheduled! Due to unavoidable reasons, the event has been moved to 21st May. Speakers remain the same—any changes will be communicated. Seats are limited—register here to secure your spot!
Thanks!
I tried that, but it returns the original URLSegment of the CurrentPage object. Can it be that the WritableClone is in an unsaved state causing it to fetch the old PageData object?
I looked at the code and it will not regenerate the URLSegment if it already has a value, makes sense when used from edit mode but not when you call the function directly and it does nothing. Try setting URL Segment to null before you call the method, that should do the trick.
Hi,
I'm trying to change the URLSegment of a page programmatically, but it doesn't seem to work using the UrlSegment.CreateUrlSegment method on a writable clone.
Has anyone encountered this before? Is it a bug or by design?
A short code sample:
PageData writablePage = CurrentPage.CreateWritableClone(); writablePage.PageName = "New Page Name"; writablePage.URLSegment = EPiServer.Web.UrlSegment.CreateUrlSegment(writablePage); DataFactory.Instance.Save(writablePage, EPiServer.DataAccess.SaveAction.Publish, EPiServer.Security.AccessLevel.NoAccess);
This, on the other hand, works just fine:
PageReference parent = PageReference.StartPage; PageData myPage = EPiServer.DataFactory.Instance.GetDefaultPageData( parent, "MyOwnPageType"); myPage.PageName = "My new page"; myPage.URLSegment = EPiServer.Web.UrlSegment.CreateUrlSegment(myPage); DataFactory.Instance.Save( myPage, EPiServer.DataAccess.SaveAction.Publish, EPiServer.Security.AccessLevel.NoAccess);