Try our conversational search powered by Generative AI!

Unable to change the URLSegment of a WritableClone


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);
Jan 29, 2009 15:42
Try to use GetUniqueURLSegment instead.
Jan 29, 2009 17:22


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?

Jan 29, 2009 19:20

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.


Jan 30, 2009 9:01
It did! Thanks for the help!
Jan 30, 2009 10:42

Old but useful thread :) Just encounter the same issue..

Mar 01, 2013 13:15
This thread is locked and should be used for reference only. Please use the Episerver CMS 7 and earlier versions forum to open new discussions.
* You are NOT allowed to include any hyperlinks in the post because your account hasn't associated to your company. User profile should be updated.