我正在使用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 & 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)
...它输出以下内容:
...如您所见,“帮助项目1”动态节点已存在。但是我在根“关于”页面上将起始节点设置为“2”我得到以下内容:
因此,带有静态子导航的“关于”页面似乎输出正确,但带有动态子导航的“帮助”页面却没有。我想做错了吗?