gpt4 book ai didi

c# - Umbraco Razor 按数字属性排序

转载 作者:行者123 更新时间:2023-11-30 18:32:18 25 4
gpt4 key购买 nike

我在 numeric 的 Umbraco 文档类型中有一个名为 position 的属性(见下文)。

@inherits Umbraco.Web.Mvc.UmbracoTemplatePage
@{
var results = CurrentPage.Children();
}

@foreach(var result in results.OrderBy("position"))
{
@result.position
}

我期待看到 1, 2, 3, 4 ... 11, 12...

但是,我实际上看到了 1, 11, 12, 2, 3, 4...

位置属性在 Umbraco 中设置为数字,但我似乎无法将顺序更改为基于整数而不是基于字符串。

关于我哪里出错的任何想法?

最佳答案

它实际上按预期工作。尽管您的字段是数字字段,但通过 CurrentPage 等动态属性访问的任何值都将被视为字符串值(如果存在)。

你可以调用:

@using umbraco.MacroEngines
@inherits UmbracoTemplatePage

@{
var results = ((DynamicNodeList)this.CurrentPage.ChildrenAsList);

foreach(var result in results.OrderBy(x => x.Position())
{
...
}
}

这会将子项转换为强类型列表对象,然后您可以对其执行 LINQ。

更新:

如果您使用的是更高版本,您也可以使用它:

@inherits UmbracoTemplatePage

@{
var results = this.Model.Content.Children;

foreach(var result in results.OrderBy(x => x.Position())
{
...
}
}

关于c# - Umbraco Razor 按数字属性排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18829496/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com