Feb 8, 2010
  6389
(0 votes)

Problem with constructing PageReferences in Page Providers

Recently I have spent some time implementing page providers for a customer. A couple of days ago I noticed that one of the page providers started to behave strange for one particular PageId. The PageReference for that page had RemoteSite set to null instead of the page providers ProviderKey. This means that the PageReference will point on a page in the LocalPageProvider rather than on my page in my custom page provider. After some investigation it was clear that this particular PageReference was equal to the PageReference of the page providers EntryPoint.

The problem seemed to be related to constructing the PageReference which was handled by the PageProviderBase.ConstructPageReference methods. Reflecting these methods with Reflector made it clear that PageReferences are constructed with RemoteSite set to ProviderKey only if PageId is not equal to EntryPoint.ID. The workaround is to construct the PageReference yourself and always set the ProviderKey part. Be careful though when you are constructing ParentLink for top-level pages because it in these cases is located on the LocalPageProvider.

Feb 08, 2010

Comments

Sep 21, 2010 10:33 AM

The reason for the behaviour for ConstructPageReference is to construct correct ParentLink for first level pages (that is children to entry point).
However this has shown to be confusing so in CMS6 we have added a new method ConstructLocalPageReference that always set RemoteSite part to ProviderKey.

morten.petersen@creuna.dk
morten.petersen@creuna.dk Sep 21, 2010 10:33 AM

Is there a solution or workaround for this? My PageProvider works fine, except when creating a new element. When leaving NewPage.aspx the parentid is unfortunately translated to a LocalPageProvider id. Ie. '1__PositionProvider' is translated to '1'

Please login to comment.
Latest blogs
AEO, GEO and SEO with Epicweb AI Assistant in Optimizely CMS

Traditional SEO remains important, but content must now also be optimized for answer engines and generative AI. This article explains how the Epicw...

Luc Gosso (MVP) | May 11, 2026 |

Accelerating Optimizely CMS and Commerce upgrades with agentic AI (Part 1 of 2)

How Niteco's Upgrade Machine   uses orchestrated AI coding agents to deliver a buildable baseline and a running CMS, then hands over for...

Hung Le Hoang | May 11, 2026

Commerce 15 and CMS 13: Optimizely’s Next Step Toward AI-Powered, Graph-First Commerce

Optimizely is preparing to release Commerce 15 in mid-May 2026 , positioning this as a foundational shift—not just an upgrade. The direction is...

Augusto Davalos | May 7, 2026

The future of Content: Introducing Optimizely CMS 13

Optimizely In the rapidly evolving landscape of digital experience, the "monolithic vs. headless" debate is being replaced by a more sophisticated...

Aniket | May 6, 2026