如何在Sitecore确定给定项目是否已启动项目?
题
在Config文件中,我们为元素中的每个网站设置了开始项(例如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)
.
我支持可能会有清洁的解决方案,但这是一个工作,快速。
记住,在一个站点的多站点解决方案中,您的项目可以是一个开始项目,而另一个站点Sane项目不必是一个开始项目。
不隶属于 StackOverflow