如何在编辑器类型为textbox的umbraco中从内容页获取属性

如何在编辑器类型为textbox的umbraco中从内容页获取属性,umbraco,umbraco7,Umbraco,Umbraco7,我想获得有关umbraco contentpage上属性类型为textbox且别名或id未知的字段的详细信息如果您想在不知道别名或id的情况下获取属性,则需要遍历属性,并且可能会获得多个该类型的属性。我不确定上下文是什么,但Umbraco发布的缓存似乎不包括属性编辑器类型。这意味着您不能在视图中执行以下操作: foreach (var property in Model.Properties.Where(x => x.PropertyType.PropertyEditorAlias ==

我想获得有关umbraco contentpage上属性类型为textbox且别名或id未知的字段的详细信息

如果您想在不知道别名或id的情况下获取属性,则需要遍历属性,并且可能会获得多个该类型的属性。我不确定上下文是什么,但Umbraco发布的缓存似乎不包括属性编辑器类型。这意味着您不能在视图中执行以下操作:

foreach (var property in Model.Properties.Where(x => x.PropertyType.PropertyEditorAlias == "Umbraco.Textbox"))
{
    var propValue = property.Value;
}
但您可以使用ContentService获取此数据:

var docProperties = ApplicationContext.Services.ContentService.GetById(Model.Id).Properties.Where(x => x.PropertyType.PropertyEditorAlias == "Umbraco.Textbox");
foreach (var property in docProperties)
{
    var propValue = property.Value;

}

警告,这将查询数据库,因为它未使用Umbraco缓存。

为什么别名未知?这是一个用于返回内容页上字段类型的包的,因此,我们不知道用户内容页面的别名或id您需要哪些关于每个字段的详细信息DocProperties始终返回null,尽管存在多个上述类型的字段。我测试了代码,代码对我有效。也许您可以在调试器中运行它,并确保获得正确的节点数据?它(ApplicationContext.Services.ContentService.GetById(Model.Id).Properties)是否包含任何属性?节点数据正确,所有其他数据都存在,但属性计数始终为零