Как определить в SiteCore, является ли указанный элемент?
Вопрос
в файле конфигурации мы устанавливаем пункт начала для каждого веб-сайта в элементе (например, startiTem="/ home").И мы также можем выбрать начать элемент в коде.Но что я спрашиваю, это то, как определить для любого выбранного элемента, будь то начать элемент или нет?
По крайней мере, мы можем выбрать пункт начать и сравнить с заданным элементом, но это не элегантный код, я думаю,
Решение
У нас обычно есть метод расширения в классе SiteContext, чтобы получить товар на дому:
public static class SiteExtensions
{
public static Item GetHomeItem(this SiteContext site)
{
return Sitecore.Context.Database.GetItem(site.StartPath);
}
}
.
С этим вы можете проверить любой элемент (не только элемент контекста), чтобы увидеть, это домашний элемент.
Item home = Sitecore.Context.Site.GetHomeItem();
if (Sitecore.Context.Item.ID == home.ID)
{
// Context item is the home item
}
. Другие советы
только от верхней части головы:
bool isStartItem = item.Paths.FullPath.Equals(
Sitecore.Context.Site.StartPath, StringComparison.OrdinalIgnoreCase)
.
Я поддерживаю, может быть очистительное решение, но это работает и быстро.
Помните, что в многосемых решениях для одного сайта ваш элемент может быть пункт начать, пока для другого объекта сайта не должен быть пункт начать.