If you need to implement partial routing in Optimizely CMS 12, this is a good start.
There are of course some breaking changes as per the documentation:
The interface IPartialRouter changed slightly, and implementations should now be registered in DI container as IPartialRouter, rather than the previous way to register a partial router, which was through the extension method RegisterPartialRoute on RouteCollection.
OK, lets start with adding a partial router class which implements IPartialRouter:
public class MyPagePartialRouter : IPartialRouter<MyPage, MyPage>
{
public MyPagePartialRouter() { }
public object RoutePartial(MyPage content, UrlResolverContext urlResolverContext)
{
urlResolverContext.RouteValues.Add("requestPath", urlResolverContext.RemainingSegments);
urlResolverContext.RemainingSegments = Array.Empty<Char>();
return content;
}
public PartialRouteData GetPartialVirtualPath(MyPage content, UrlGeneratorContext urlGeneratorContext)
{
return null;
}
}
We add our params to the RouteValues
collection. Note we use RemainingSegments
instead of RemainingPath.
Then we need to register it in a DI container like this:
services.AddSingleton<IPartialRouter, MyPagePartialRouter>();
And that's it!
Top comments (0)