子菜单中的MvcSiteMapProvider子菜单

时间:2015-05-07 14:33:54

标签: c# asp.net-mvc mvcsitemapprovider

希望有人可以提供帮助,因为我似乎无法使其工作,并且无法在网上找到同样问题的任何地方。

我的站点地图:

<?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-4.0"
            xsi:schemaLocation="http://mvcsitemap.codeplex.com/schemas/MvcSiteMap-File-4.0 MvcSiteMapSchema.xsd"
            >
  <mvcSiteMapNode title="Website Home" url="www.someaddress.com">
    <mvcSiteMapNode title="menu1" url="#">
      <mvcSiteMapNode title="sub1" url="www.someaddress2.com">
        <mvcSiteMapNode title="sub of sub1" url="www.someaddress3.com" ></mvcSiteMapNode>
      </mvcSiteMapNode>      
    </mvcSiteMapNode>   
  </mvcSiteMapNode>
</mvcSiteMap>
然后我按照这样显示菜单:

@Html.MvcSiteMap().Menu()

结果我期待:

    Website Home | Menu 1
                    | Sub 1
                        |Sub of Sub 1

然后当鼠标悬停在Menu1 Sub1上时,当鼠标悬停在Sub1上时,Sub 1的Sub出现。

目前这不起作用,无论XML标记是否有子节点等,它总是显示所有平面如此:

    Website Home | Menu 1
                     | Sub 1
                     |Sub of Sub 1

似乎无法找到获得3级菜单的方法。

1 个答案:

答案 0 :(得分:0)

该菜单是一个模板化的MVC HTML帮助器。默认模板主要用于MVC 4和5的默认模板(如果将MvcSiteMapProvider.Web升级到与MVC 5一起使用的最新版本,但NuGet默认不安装它),但没有花哨JavaScript菜单等。

您还可以编辑HTML以匹配您用于控制用户与菜单交互的JavaScript / CSS框架,但包中不包含此类框架。有关自定义菜单模板以满足您需求的起点,请参阅this answer