Welcome to the navigation

Laboris non aliqua, incididunt dolor velit labore nisi ex duis cupidatat adipisicing laborum, in sit in id anim esse consequat, quis dolor irure et enim. Do minim ut proident, duis excepteur adipisicing id enim in lorem amet, ut irure aliqua, commodo eiusmod et anim sunt laborum, veniam, reprehenderit labore fugiat

Yeah, this will be replaced... But please enjoy the search!

Get the SiteDefinition for a specific page in Episerver using SiteDefinitionResolver

If you have a multi site/tenant Episerver setup and need an effective way to figure out the current SiteDefinition the SiteDefinitionResolver is the way to go. This may be very useful when you need to figure out the current StartPage, SiteUrl and similiar properties in a multi site environment.

Before Epi 10

var siteDefinitionResolover = ServiceLocator.Current.GetInstance<SiteDefinitionResolver>();
SiteDefinition siteDefinition = siteDefinitionResolover.GetDefinitionForContent(
    contentLink: contentLink, 
    fallbackToWildcardMapped: true,
    fallbackToEmpty: true);

Epi 10 and later

var siteDefinitionResolover = ServiceLocator.Current.GetInstance<ISiteDefinitionResolver>();
SiteDefinition siteDefinition = siteDefinitionResolover.GetByContent(
    contentLink: this.ContentLink,
    fallbackToWildcard: true,
    fallbackToEmpty: true);

 

This will enable you to access the properties through the siteDefinition variable

// get the startpage of the stated contentLink
var startPage = siteDefinition.StartPage;
// get the site url for the stated contentLink
var siteUrl = siteDefinition.SiteUrl;

Read more on SiteDefinition and SiteDefinitionResolver