MvcSiteMap只有根节点

时间:2012-05-25 01:39:22

标签: asp.net-mvc-3 asp.net-mvc-sitemap

我正在尝试使用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>

根节点似乎没有任何子节点:

enter image description here

我无法弄清楚出了什么问题。我已经用正在执行的动作替换了root,并给了它一个类似的孩子,但那不起作用:

<mvcSiteMapNode title="ASDFG" controller="Test" action="TestSiteMap">
  <mvcSiteMapNode title="ASDFGHJKL" controller="Test" action="TestSiteMap"/>

1 个答案:

答案 0 :(得分:0)

很难说这里发生了什么。如果我不得不猜测,我会说它可能与子节点被直接添加到v3中的节点这一事实有关,在这种情况下,站点地图无法跟踪它们。此选项已在MvcSiteMapProvider v4中删除,以确保将所有节点直接添加到站点地图并由其内部集合进行跟踪。

我建议升级以查看此行为在v4中是否可重现。