HomeDev GuideAPI Reference
Dev GuideAPI ReferenceUser GuideGitHubNuGetDev CommunitySubmit a ticketLog In
GitHubNuGetDev CommunitySubmit a ticket

Partial routing

Describes how to extend routing beyond pages.

Partial routing lets you extend routing beyond pages. You can use partial routing either to route to data outside Optimizely Content Management System (CMS) or to route to other content types than pages.

For example: http://site/News/Sports/TheGame/. The http://site/News/ part can represent the URL to a page instance of model type NewsContainer. Then, by registering a partial router for ModelType NewsContainer, the partial router can take care of routing the remaining part of the URL: Sports/TheGame/.

IPartialRouter interface

Each partial router must implement the interface EPiServer.Web.Routing.IPartialRouter<TContent, TRoutedData>, which resides in the EPiServer.dll assembly. The interface is a generic interface with generic constraints where TContent : EPiServer.Core.IContent.

The interface contains the following methods:

  • RoutePartial  – Called when the ordinary page routing has routed to a page of type TContent and there is a remaining part of the URL. The implementation can then route the remaining part of the URL.
  • GetPartialVirtualPath  – Called when an outgoing URL is constructed for a content instance of type TOutgoing.