我在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