我在Layout.cshtml下面的代码给用户控件添加到标题:如何使widget之前渲染特设形状
WorkContext.Layout.Header.Add(New.User(), "10");
然而,在报头中的
<article class="widget-HeaderMenu widget-header widget-menu-widget widget" shape-id="5">
之前
<div class="user-display" shape-id="15">
渲染(这被注入与WorkContext东西)
两者都是正确的,但是顺序需要颠倒以使用户控件出现在菜单的右侧。
我该怎么做?
我很好奇,如果它确实与WorkContext.Layout.Header.Add(New.User(), "10");
的第二个参数有关,即使将它设置为9000以上,也不会出现任何问题?我将左边的参数识别为粘土物体的实例化。
编辑
经过一些试验似乎第二个参数是区域内的注射形状的顺序。
EDIT2
我得到了我想要的BIJ增加<li>@Display(New.User())</li>
到MenuWidget替代的作用。
交替将是:
@{
// Model is Model.Menu from the layout (Layout.Menu)
var tag = Tag(Model, "ul");
var items = (IList<dynamic>)Enumerable.Cast<dynamic>(Model.Items);
if (items.Any()) {
items[0].Classes.Add("first");
items[items.Count - 1].Classes.Add("last");
}
}
<nav id='topnav'>
<ul>
@DisplayChildren(Model.Menu)
<li>@Display(New.User())</li>
</ul>
</nav>
参见:How to control the rendering of a menu in Orchard
问题是用户显示(登录)需要插入同一区域中的相同菜单结构中。 – Ytrog 2013-02-26 15:04:34
你没有说你真正想做的事情完全不同,就是建立一个自定义的菜单项。你找到的解决方案并不是很好的做法。建立一个自定义的菜单项类型是去这里的方法。 – 2013-02-26 17:43:10