C# 在Sitecore上实现面包屑
我只是想问问这里是否有人已经在Sitecore制作了面包屑。我目前正在做一个Sitecore 8 MVC项目,需要有一个面包屑 目前我看到了这个网站。但它对我还不起作用,因为我不知道该引用什么 我只需要知道如何获取当前页面路径中的每个项目,我已经可以处理它了C# 在Sitecore上实现面包屑,c#,asp.net-mvc,sitecore,sitecore8,sitecore-mvc,C#,Asp.net Mvc,Sitecore,Sitecore8,Sitecore Mvc,我只是想问问这里是否有人已经在Sitecore制作了面包屑。我目前正在做一个Sitecore 8 MVC项目,需要有一个面包屑 目前我看到了这个网站。但它对我还不起作用,因为我不知道该引用什么 我只需要知道如何获取当前页面路径中的每个项目,我已经可以处理它了 谢谢像这样的东西应该可以做到: public ICollection<Item> GetBreadcrumbs(Item current, SiteContext site) { Item homeItem = site
谢谢像这样的东西应该可以做到:
public ICollection<Item> GetBreadcrumbs(Item current, SiteContext site)
{
Item homeItem = site.StartItem;
List<Item> breadcrumbs = new List<Item>();
while (current != null)
{
// You may want to add additional logic to opt in/out of
// the breadcrumb based on a template/field
breadcrumbs.Add(current);
if (current == homeItem)
break;
current = current.Parent;
}
breadcrumbs.Reverse();
return breadcrumbs;
}
像这样的东西应该可以做到:
public ICollection<Item> GetBreadcrumbs(Item current, SiteContext site)
{
Item homeItem = site.StartItem;
List<Item> breadcrumbs = new List<Item>();
while (current != null)
{
// You may want to add additional logic to opt in/out of
// the breadcrumb based on a template/field
breadcrumbs.Add(current);
if (current == homeItem)
break;
current = current.Parent;
}
breadcrumbs.Reverse();
return breadcrumbs;
}
您可以获取当前项目,然后获取其所有祖先
var ancestors = currentItem.Axes.GetAncestors().ToList();
然后,您可以获取主项目并过滤祖先节点以删除sitecore和content节点
ancestors = ancestors.SkipWhile(i => i.ID != home.Id.ToID()).ToList();
您可以获取当前项目,然后获取其所有祖先
var ancestors = currentItem.Axes.GetAncestors().ToList();
然后,您可以获取主项目并过滤祖先节点以删除sitecore和content节点
ancestors = ancestors.SkipWhile(i => i.ID != home.Id.ToID()).ToList();
public void GetBreadcrumbs(项ParentItem)
{
List lstBreadCrumbs=新列表();
字符串strcurrenttitle=ParentItem.Name;
项目currentitem=父项目;
int i=0;
while(currentitem!=null)
{
var ItemTemplateid=currentitem.TemplateID.ToString();
var FolderTemplateId=“{}”;
if(ItemTemplateid!=FolderTemplateId)//这里我们正在删除文件夹
{
BredCrumbDetails bcDetails=新的BredCrumbDetails();
如果(i==0)
{
bcDetails.BCPageLink=null;
bcDetails.Title=currentitem.Name;
bcDetails.IsVisible=true;
lstBreadCrumbs.Add(bcDetails);
}
其他的
{
bcDetails.BCPageLink=currentitem.Path.FullPath;
bcDetails.Title=currentitem.Name;
bcDetails.IsVisible=true;
lstBreadCrumbs.Add(bcDetails);
}
i++;
如果(currentitem.Name==(“主页”))
{
打破
}
currentitem=currentitem.Parent;
}
其他的
{
i++;
currentitem=currentitem.Parent;
}
}
lstBreadCrumbs.Reverse();
rptCrumbs.DataSource=lstBreadCrumbs;
rpts.DataBind();
}
public void GetBreadcrumbs(项ParentItem)
{
List lstBreadCrumbs=新列表();
字符串strcurrenttitle=ParentItem.Name;
项目currentitem=父项目;
int i=0;
while(currentitem!=null)
{
var ItemTemplateid=currentitem.TemplateID.ToString();
var FolderTemplateId=“{}”;
if(ItemTemplateid!=FolderTemplateId)//这里我们正在删除文件夹
{
BredCrumbDetails bcDetails=新的BredCrumbDetails();
如果(i==0)
{
bcDetails.BCPageLink=null;
bcDetails.Title=currentitem.Name;
bcDetails.IsVisible=true;
lstBreadCrumbs.Add(bcDetails);
}
其他的
{
bcDetails.BCPageLink=currentitem.Path.FullPath;
bcDetails.Title=currentitem.Name;
bcDetails.IsVisible=true;
lstBreadCrumbs.Add(bcDetails);
}
i++;
如果(currentitem.Name==(“主页”))
{
打破
}
currentitem=currentitem.Parent;
}
其他的
{
i++;
currentitem=currentitem.Parent;
}
}
lstBreadCrumbs.Reverse();
rptCrumbs.DataSource=lstBreadCrumbs;
rpts.DataBind();
}
我要试试这个。谢谢,我要试试这个。谢谢