同様の問題で誰かがこれに遭遇した場合に備えて、テーマの Widget-Sidebar.cshtml ファイルで Widget.Wrapper を抑制することができました。
@using Orchard.DisplayManagement.Descriptors;
@using Orchard.Environment.Extensions;
@{
Model.Metadata.Wrappers.Remove("Widget_Wrapper");
Model.Metadata.Wrappers.Add("Widget_SideBarWrapper");
Model.Metadata.Wrappers.Add("Widget_ControlWrapper");
}
@Display(Model.Content)
まず、シェイプ トレーシング ツールを使用して、「サイドバー」列にあるウィジェットの代替を作成することから始めました (基本的<div id="sidebar">
には、レイアウトに としてあります@Zone(Model.Sidebar)
)。
上記のコードは、Shape Tracing を使用して作成した Widget-Sidebar.cshtml 代替に配置しました。
Model.Metadata.Wrappers.Clear(); as used by the OP completely removes everything, to the point where in Shape Tracing it won't even show up as a widget. Adding my own alternate (Widget.SideBarWrapper.cshtml, which is added as "Widget_SideBarWrapper" above) would not fix this. I felt that was wrong even though the content displayed.
Model.Metadata.Wrappers.Remove("Widget_Wrapper");
正しい方法のように見えました (つまり、Shape Tracing はまだ Widget を示していました) が、他のすべてのラッパーを削除しているように見えるため、新しいラッパーを Widget.ControlWrapper.cshtml と共に追加する必要があります ("Widget_ControlWrapper" として記述)上記のコード)。
HTH。