【发布时间】:2014-02-13 22:59:21
【问题描述】:
我正在配置我的 asp.net mvc 5 应用程序以使用 MvcSiteMap 库。所以,到目前为止,我可以成功配置面包屑。
但是,菜单模板比面包屑要复杂得多。我有胡子版本的菜单(我没有显示 ul 标签):
<li{{#class}} class="{{class}}" {{ />class}}>{{! print class name (active, open, etc) if it exists }}
<a href="{{#link}}{{#createLinkFunction}}{{link}}{{/createLinkFunction}}{{/link}} {{^link}}#{{/link}}" {{#submenu?}} class="dropdown-toggle" {{ />submenu?}}>
{{#icon}}<i class="{{icon}}"></i>{{/icon}}
{{#level-1}}
<span class="menu-text">
{{/level-1}}
{{#level-2}}{{! if level-2 and no icon assigned, use this icon}}
{{^icon}}<i class="icon-double-angle-right"></i>{{/icon}}
{{/level-2}}
{{title}}
{{#badge}}
<span class="badge {{badge-class}} {{tooltip-class}}" {{#tooltip}} title="{{{tooltip}}}" {{ />tooltip}}>{{{badge}}}
</span>
{{/badge}}
{{#label}}
<span class="label {{label-class}}" {{#label-title}} title="{{label-title}}" {{ />label-title}}>{{{label}}}</span>
{{/label}}
{{#level-1}}
</span>
{{/level-1}}
{{#submenu?}}<b class="arrow icon-angle-down"></b>{{/submenu?}}
</a>
{{#submenu?}}{{! if we have submenu items, print them recursively }}
<ul class="submenu">
{{#submenu}}
{{> layout.sidenav.items}}
{{/submenu}}
</ul>
{{/submenu?}}
</li>
因此,对于每个节点,这就是要应用的逻辑。我需要知道节点是否有子节点(子菜单),是 1 级还是 2 级节点。
1) 我怎么知道?
2)如果我需要更改我认为需要更改的 SiteMapNodeModel.cshtml,如何不弄乱面包屑,因为它们使用相同的模板?
【问题讨论】:
标签: c# asp.net asp.net-mvc mvcsitemapprovider