如何在覆盖的区域模板中维护小部件的正确顺序?

Law*_*son 1 orchardcms orchardcms-1.9

我像这样覆盖了Zone-AsideSecond模板,为标签添加了一些类:

@{
    Model.Id = "zone-aside-second";
    var tag = Tag(Model, "section");
    tag.Attributes.Add("data-spy", "affix");
    tag.Attributes.Add("data-offset-top", "300");
}
@tag.StartElement
@DisplayChildren(Model)
@tag.EndElement
Run Code Online (Sandbox Code Playgroud)

但是现在区域中的小部件不再尊重它们的位置,只是按它们创建的顺序呈现.我尝试像这样修复它:

Model.Items = ((IEnumerable<dynamic>)Model.Items).OrderBy(c => Int32.Parse(c.ContentItem.WidgetPart.Position));
Run Code Online (Sandbox Code Playgroud)

但这似乎并没有什么不同.

mda*_*eer 6

Orchard有一种以正确方式订购小部件的方法,您可以按如下方式使用它:

@foreach (var item in Orchard.Core.Shapes.CoreShapes.Order(Model)) {
    @Display(item)
}
Run Code Online (Sandbox Code Playgroud)