我在VS2013中使用NuGet安装了Umbraco 7.1.5,并在我的视图中使用Razor语法。我知道我们可以从文档树中创建一个导航菜单,但是:
Q:是否可以创建一个菜单类型的对象并在后端UI中编辑它,以便非开发人员可以根据需要添加尽可能多的项目或子项目到菜单中,如文本,href和可选图像,带有加号。如何做到这一点?/或这是可能的使用这个属性编辑器?
当然,你已经回答了你自己的一半问题,但是不,你不需要一个插件。解决方法非常简单。
- 你创建你的MenuItem文档类型,并在"结构"选项卡中允许在MenuItem对象下创建MenuItem对象。
- 您在内容树中创建某个地方,以允许编辑器创建其菜单结构。我喜欢有一个"站点设置"节点,像站点配置,促销和其他非内容项目可以分组。 开始创建菜单项树。
在您的剃刀中,查找MenuItem树的根,并使用一些自引用代码遍历树,就像创建站点地图一样。比如*:
@helper traverse(IPublishedContent node) { <ul> @foreach (var item in node.Children) { <li> <a href="@item.GetPropertyValue("menuItemHref")"> @item.GetPropertyValue("menuItemText") </a> @traverse(item) </li> } </ul> } <div class="menuItemTree"> @traverse(@parentOfrootMenuItem) </div>