如何在sitecore中确定给定项是否为起始项?

如何在sitecore中确定给定项是否为起始项?,sitecore,sitecore6,sitecore7,Sitecore,Sitecore6,Sitecore7,在配置文件中,我们为元素中的每个网站设置开始项(例如startItem=“/Home”)。我们也可以在代码中选择起始项。但我想问的是如何确定任何选定项目是否为起始项目 至少我们可以选择开始项并与给定项进行比较,但我认为这不是一个优雅的代码 bool isStartItem=item.path.FullPath.Equals( Sitecore.Context.Site.StartPath,StringComparison.OrdinalIgnoreCase) 我支持可能有更清洁的解决方案,但这

在配置文件中,我们为元素中的每个网站设置开始项(例如startItem=“/Home”)。我们也可以在代码中选择起始项。但我想问的是如何确定任何选定项目是否为起始项目


至少我们可以选择开始项并与给定项进行比较,但我认为这不是一个优雅的代码

bool isStartItem=item.path.FullPath.Equals(
Sitecore.Context.Site.StartPath,StringComparison.OrdinalIgnoreCase)
我支持可能有更清洁的解决方案,但这一个工作,是快速的


请记住,在一个站点的多站点解决方案中,您的项目可以是开始项目,而对于另一个站点,正常项目不必是开始项目。

我们通常在SiteContext类上有一个扩展方法来获取主项目:

公共静态类站点扩展
{
公共静态项GetHomeItem(此SiteContext站点)
{
返回Sitecore.Context.Database.GetItem(site.StartPath);
}
}
有了它,您可以测试任何项目(不仅仅是上下文项目),看看它是否是主项目

Item home=Sitecore.Context.Site.GetHomeItem();
if(Sitecore.Context.Item.ID==home.ID)
{
//上下文项是主项
}

谢谢,我使用了相同的解决方案。可能这是最好的。是的,我们也有。这是一个更加优雅的解决方案,因此您目前是赢家)@ddysart可能希望使用site.StartItem而不是site.StartPath