Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在Sitecore上实现面包屑_C#_Asp.net Mvc_Sitecore_Sitecore8_Sitecore Mvc - Fatal编程技术网

C# 在Sitecore上实现面包屑

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

我只是想问问这里是否有人已经在Sitecore制作了面包屑。我目前正在做一个Sitecore 8 MVC项目,需要有一个面包屑

目前我看到了这个网站。但它对我还不起作用,因为我不知道该引用什么

我只需要知道如何获取当前页面路径中的每个项目,我已经可以处理它了


谢谢

像这样的东西应该可以做到:

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();
}

我要试试这个。谢谢,我要试试这个。谢谢