Sitecore按创建的字段对子项进行排序

Sitecore按创建的字段对子项进行排序,sitecore,sitecore-mvc,Sitecore,Sitecore Mvc,我有一个运行MVC和Razor的Sitecore 6.6解决方案。 我有以下几行 @Html.Raw(Sitecore.Context.Database.GetItem(myList.Children.LastOrDefault()["myField1"]).Fields["myField2"]) 除了排序顺序外,上面的操作很好。我需要根据创建的字段获取最新的项目。LastOrDefault似乎接受树中的最后一个项,它并不总是与实际最新创建的项相对应 可以像上面那样在一行中完成吗?这个怎么样:

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

@Html.Raw(Sitecore.Context.Database.GetItem(myList.Children.LastOrDefault()["myField1"]).Fields["myField2"])
除了排序顺序外,上面的操作很好。我需要根据创建的字段获取最新的项目。LastOrDefault似乎接受树中的最后一个项,它并不总是与实际最新创建的项相对应

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

这个怎么样:

myList.GetChildren()
.OrderBy(x => x[Sitecore.FieldIDs.Created])
.Reverse()
.LastOrDefault()
我想这也行:

myList.GetChildren()
.OrderBy(x => x.Statistics.Created)
.Reverse()
.LastOrDefault()
请记住,首先将检索所有子项,然后进行排序。 如果你有很多孩子,那会很慢

一般来说,你不应该在视图中这样做。你把太多的逻辑放进去了。您的模型应该提供您需要的物品(上次创建的)。

这个怎么样:

myList.GetChildren()
.OrderBy(x => x[Sitecore.FieldIDs.Created])
.Reverse()
.LastOrDefault()
我想这也行:

myList.GetChildren()
.OrderBy(x => x.Statistics.Created)
.Reverse()
.LastOrDefault()
请记住,首先将检索所有子项,然后进行排序。 如果你有很多孩子,那会很慢


一般来说,你不应该在视图中这样做。你把太多的逻辑放进去了。您的模型应提供您所需的物品(上次创建)。

作为魅力-thx!是的,我知道它应该在模型中完成,所以稍后将正确地将其移动到那里。作为一个魅力-thx!是的,我知道这应该在模型中完成,所以稍后会正确地将其移动到模型中。