0

我有一个运行 MVC 和 Razor 的 Sitecore 6.6 解决方案。我有以下行;

@Html.Raw(Sitecore.Context.Database.GetItem(myList.Children.LastOrDefault()["myField1"]).Fields["myField2"])

以上工作正常,除了它排序的顺序。我需要根据 __Created 字段获取最新项目。LastOrDefault 似乎采用了树中的最后一项,这并不总是对应于实际最新创建的项。

可以像上面那样在一行中完成吗?

4

1 回答 1

4

这个怎么样:

myList.GetChildren()
.OrderBy(x => x[Sitecore.FieldIDs.Created])
.Reverse()
.LastOrDefault()

我想这也可以:

myList.GetChildren()
.OrderBy(x => x.Statistics.Created)
.Reverse()
.LastOrDefault()

请记住,首先将检索所有子项,然后进行排序。如果你有很多孩子,它会很慢。

一个一般说明,你不应该在视图中这样做。你把太多的逻辑放在那里。您的模型应该提供您需要的项目(最后创建)。

于 2013-05-22T11:24:20.750 回答