我正在尝试使用MvcSiteMapProvider,但是要创建我自己的自定义布局。我使用nuget将MvcSiteMapProvider版本3.2.3.0安装到我的项目中并创建此文件以进行开发。但是,当我尝试遍历根节点的子节点时,没有任何。
<?xml version="1.0" encoding="utf-8" ?>
<mvcSiteMap xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://mvcsitemap.codeplex.com/schemas/MvcSiteMap-File-3.0"
xsi:schemaLocation="http://mvcsitemap.codeplex.com/schemas/MvcSiteMap-File-3.0 MvcSiteMapSchema.xsd"
enableLocalization="true">
<mvcSiteMapNode title="Home" controller="Home" action="Index">
<mvcSiteMapNode title="Reports" controller="Reports" action="Index"/>
<mvcSiteMapNode title="Queries" controller="Queries" action="Index"/>
<mvcSiteMapNode title="Tools" controller="Tools" action="Index">
<mvcSiteMapNode title="Markets" controller="Markets" action="Index">
<mvcSiteMapNode title="Boundary Files" controller="Markets" action="BoundaryFiles" />
<mvcSiteMapNode title="Mass Update" controller="Markets" action="MassUpdate" />
<mvcSiteMapNode title="SHOULD NOT BE HERE" controller="Home" action="Headings" />
</mvcSiteMapNode>
<mvcSiteMapNode title="Categories" controller="Categories" action="Index"/>
<mvcSiteMapNode title="Blasts" controller="Blasts" action="Index">
<mvcSiteMapNode title="Get Blast" controller="Blasts" action="Get" />
</mvcSiteMapNode>
<mvcSiteMapNode title="Alerts" controller="Alerts" action="Index"/>
<mvcSiteMapNode title="Applications" controller="Applications" action="Index"/>
</mvcSiteMapNode>
<mvcSiteMapNode title="Subscribers" controller="Subscribers" action="Index" />
</mvcSiteMapNode>
</mvcSiteMap>
根节点似乎没有任何子节点:
我无法弄清楚出了什么问题。我已经用正在执行的动作替换了root,并给了它一个类似的孩子,但那不起作用:
<mvcSiteMapNode title="ASDFG" controller="Test" action="TestSiteMap">
<mvcSiteMapNode title="ASDFGHJKL" controller="Test" action="TestSiteMap"/>
答案 0 :(得分:0)
很难说这里发生了什么。如果我不得不猜测,我会说它可能与子节点被直接添加到v3中的节点这一事实有关,在这种情况下,站点地图无法跟踪它们。此选项已在MvcSiteMapProvider v4中删除,以确保将所有节点直接添加到站点地图并由其内部集合进行跟踪。
我建议升级以查看此行为在v4中是否可重现。