MvcSiteMapProvider - 动态SiteMaps在开始深度时不出现在导航中> 1

时间:2012-10-22 10:05:54

标签: asp.net-mvc mvcsitemapprovider

我正在使用MvcSiteMapProvider库在ASP.NET MVC 4.0应用程序中创建站点地图和导航。我已经创建了一个动态站点地图提供程序,但是当我将起始深度级别设置为>时,似乎没有任何节点出现。 1.当我将其设置为1级时,动态创建的节点看起来很好。

这是我的站点地图文件:

<mvcSiteMapNode title="Help" controller="Help" action="Index" key="Help">
    <mvcSiteMapNode title="Help Section" controller="Help" action="Section"
        dynamicNodeProvider="MyLibrary.HelpNodeProvider, MyLibrary" />
</mvcSiteMapNode>

<mvcSiteMapNode title="About" clickable="false">
    <mvcSiteMapNode title="Accessibility" controller="Info" action="Accessibility" />
    <mvcSiteMapNode title="Terms &amp; Conditions" controller="Info" action="Terms" />
    <mvcSiteMapNode title="Privacy" controller="Info" action="Privacy" />
</mvcSiteMapNode>

...和我的HelpNodeProvider类:

namespace MyLibrary.Sitemap
{
    public class HelpNodeProvider : DynamicNodeProviderBase
    {
        public override IEnumerable<DynamicNode> GetDynamicNodeCollection()
        {
            DynamicNode test = new DynamicNode();
            test.Title = "Help Item 1";
            test.Controller = "Help";
            test.Action = "Section";
            test.RouteValues.Add("sectionName", "item1");
            test.ParentKey = "Help";

            return new List<DynamicNode>()
            {
                test
            };
        }
    }
}

现在在“帮助”页面的根目录中,如果我添加以下MvcSiteMap帮助程序代码:

@Html.MvcSiteMap().Menu(2, 2)

...它不会输出任何内容,但如果我将起始级别更改为“1”:

@Html.MvcSiteMap().Menu(1, 2)

...它输出以下内容:

  • 关于
    • 辅助
    • 条款&amp;条件
    • 隐私
  • 帮助
    • 帮助项目1

...如您所见,“帮助项目1”动态节点已存在。但是我在根“关于”页面上将起始节点设置为“2”我得到以下内容:

  • 辅助
  • 条款&amp;条件
  • 隐私

因此,带有静态子导航的“关于”页面似乎输出正确,但带有动态子导航的“帮助”页面却没有。我想做错了吗?

0 个答案:

没有答案