我有运行MVC和Razor的Sitecore 6.6解决方案。 我有以下几行;
@Html.Raw(Sitecore.Context.Database.GetItem(myList.Children.LastOrDefault()["myField1"]).Fields["myField2"])
以上工作正常,除了它排序的顺序。我需要根据__Created字段获取最新项目。 LastOrDefault似乎采用了树中的最后一项,它并不总是与实际最新创建的项目相对应。
可以像上面那样在一行中完成吗?
答案 0 :(得分:4)
这个怎么样:
myList.GetChildren()
.OrderBy(x => x[Sitecore.FieldIDs.Created])
.Reverse()
.LastOrDefault()
我想这也会奏效:
myList.GetChildren()
.OrderBy(x => x.Statistics.Created)
.Reverse()
.LastOrDefault()
请记住,首先检索所有孩子,然后进行排序。 如果你有很多孩子,那就会很慢。
一般情况下,您不应该在View中这样做。你在那里放了太多的逻辑。您的模型应该提供您需要的项目(最后创建)。