Model view controller 使用MvcSiteMapProvider时如何隐藏根级别?

Model view controller 使用MvcSiteMapProvider时如何隐藏根级别?,model-view-controller,hide,root,breadcrumbs,mvcsitemapprovider,Model View Controller,Hide,Root,Breadcrumbs,Mvcsitemapprovider,我正在使用MvcSiteMapProvider创建一个简单的面包屑。我有一个小问题,我解决不了。假设我的网站包含五个选项卡:主页、客户、公司、报告和关于(这些是顶级选项卡) 当用户浏览主页时,我不希望面包屑出现。但是,当用户在Customer页面上时,面包屑应该显示“Home”(这同样适用于其他顶级选项卡,当然Home除外)。对于下一个级别,假设用户已单击客户页面上名为“客户详细信息”的链接,面包屑应显示“主页/客户”。因此,基本上省略了顶层 如何存档此文件?非常感谢您的帮助!:) 最简单的方法

我正在使用MvcSiteMapProvider创建一个简单的面包屑。我有一个小问题,我解决不了。假设我的网站包含五个选项卡:主页、客户、公司、报告和关于(这些是顶级选项卡)

当用户浏览主页时,我不希望面包屑出现。但是,当用户在Customer页面上时,面包屑应该显示“Home”(这同样适用于其他顶级选项卡,当然Home除外)。对于下一个级别,假设用户已单击客户页面上名为“客户详细信息”的链接,面包屑应显示“主页/客户”。因此,基本上省略了顶层


如何存档此文件?非常感谢您的帮助!:)

最简单的方法就是编辑
/Views/Shared/DisplayTemplates/
目录中的
SiteMapPathHelperModel.cshtml
模板文件

@model MvcSiteMapProvider.Web.Html.Models.SiteMapPathHelperModel
@using System.Web.Mvc.Html
@using System.Linq
@using MvcSiteMapProvider.Web.Html.Models

@foreach (var node in Model) {
    // Condition to ensure root node is invisible 
    // when it is the current node
    if (!(node.IsRootNode && node.IsCurrentNode))
    {
        @Html.DisplayFor(m => node);

        if (node != Model.Last()) {
            <text> &gt; </text>
        }
    }
}
@model mvcsitemprovider.Web.Html.Models.SiteMapPathHelperModel
@使用System.Web.Mvc.Html
@使用System.Linq
@使用MvcSiteMapProvider.Web.Html.Models
@foreach(模型中的var节点){
//确保根节点不可见的条件
//当它是当前节点时
if(!(node.IsRootNode&&node.IsCurrentNode))
{
@DisplayFor(m=>node);
if(node!=Model.Last()){
}
}
}

您也可以通过定制来实现这一点。

最简单的方法就是编辑
/Views/Shared/DisplayTemplates/
目录中的
SiteMapPathHelperModel.cshtml
模板文件

@model MvcSiteMapProvider.Web.Html.Models.SiteMapPathHelperModel
@using System.Web.Mvc.Html
@using System.Linq
@using MvcSiteMapProvider.Web.Html.Models

@foreach (var node in Model) {
    // Condition to ensure root node is invisible 
    // when it is the current node
    if (!(node.IsRootNode && node.IsCurrentNode))
    {
        @Html.DisplayFor(m => node);

        if (node != Model.Last()) {
            <text> &gt; </text>
        }
    }
}
@model mvcsitemprovider.Web.Html.Models.SiteMapPathHelperModel
@使用System.Web.Mvc.Html
@使用System.Linq
@使用MvcSiteMapProvider.Web.Html.Models
@foreach(模型中的var节点){
//确保根节点不可见的条件
//当它是当前节点时
if(!(node.IsRootNode&&node.IsCurrentNode))
{
@DisplayFor(m=>node);
if(node!=Model.Last()){
}
}
}

您也可以通过定制来完成此操作。

谢谢您的回复!:)

我意识到这样的事情也会起作用:

@foreach (var node in Model.Reverse().Skip(1).Reverse()) { 
    @Html.DisplayFor(m => node);
    if (node != Model.Last()) {
        <text> / </text>
    }
}
@foreach(Model.Reverse()中的var节点。跳过(1.Reverse()){
@DisplayFor(m=>node);
if(node!=Model.Last()){
/ 
}
}

谢谢您的回复!:)

我意识到这样的事情也会起作用:

@foreach (var node in Model.Reverse().Skip(1).Reverse()) { 
    @Html.DisplayFor(m => node);
    if (node != Model.Last()) {
        <text> / </text>
    }
}
@foreach(Model.Reverse()中的var节点。跳过(1.Reverse()){
@DisplayFor(m=>node);
if(node!=Model.Last()){
/ 
}
}