Как получить блоки загружаемой в данный момент страницы EPIServer в Root.Master.cs? - PullRequest
0 голосов
/ 09 июля 2019

Я пытаюсь получить блок CurrentPage (если это определенная страница) в Root.Master.cs, но я не могу найти способ, как это сделать.

Я попытался загрузить блок с его идентификатором (статическим номером), но рецензент говорит, что вам нужно найти другой способ.

public MapMode CurrentMapMode
{
    get
    {
        if (!(CurrentPage is EstateDisplayPage))
            return MapService.GetMapMode(Request.QueryString, CurrentPage as ISiteWithMap);
        var block = ServiceLocator.Current.GetInstance<IContentLoader>()
            .Get<IContent>(new ContentReference(10861)); //MapBlock ID: 10861
        return MapService.GetMapMode(Request.QueryString, block as ISiteWithMap);
    }
}

Мне нужно найти другой способ найти block, где мне не нужно передавать статический номер (ID) на ContentRefrence. Заранее спасибо

1 Ответ

0 голосов
/ 11 июля 2019

Это то, что я сделал, чтобы получить Blocks Специфической страницы на Root.Master.cs.

public MapMode CurrentMapMode
{
    get
    {
        if (!(CurrentPage is EstateDisplayPage))
            return MapService.GetMapMode(Request.QueryString, CurrentPage as ISiteWithMap);

        var page = CurrentPage as EstateDisplayPage;
        foreach (var item in page.ContentArea.Items)
        {
            var block = ServiceLocator.Current.GetInstance<IContentLoader>()
            .Get<IContent>(item.GetContent().ContentLink);
            if (block is ISiteWithMap)
            {
                return MapService.GetMapMode(Request.QueryString, block as ISiteWithMap);
            }
        }
        return MapMode.Google;
    }
}
...