ユーザー コントロールをヘッダーに追加するために、Layout.cshtml に次のコードがあります。
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以上に設定しても何もしないように見える2番目のパラメーターと関係があるのだろうか?私は左のパラメータを Clay オブジェクトのインスタンス化として認識しています。
編集
いくつかの実験の後、2 番目のパラメーターは、ゾーン内に注入された形状の順序であると思われます。
EDIT2
<li>@Display(New.User())</li>
私は、bijが 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>