Sitecore按__Created字段对子项进行排序

时间:2013-05-22 10:52:28

标签: sitecore sitecore-mvc

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

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

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

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

1 个答案:

答案 0 :(得分:4)

这个怎么样:

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

我想这也会奏效:

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

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

一般情况下,您不应该在View中这样做。你在那里放了太多的逻辑。您的模型应该提供您需要的项目(最后创建)。