我是Umbraco的新手,所以这甚至可能都不可行。我使用Archetype创建了自己的数据类型,并且希望能够按类型而不是别名在页面上获取该类型的实例。 我知道我可以做到以下几点:
model.Content.GetPropertyValue("myAlias")
但我想知道按类型获取财产是否可行。有点像:
model.Content.GetPropertiesByType("TypeName")
会返回该类型页面上的控件列表吗?
这可行吗?
答案 0 :(得分:0)
这是可能的,但并不完全是直截了当。
查看可用的Umbraco数据服务 - 您需要从DataTypeService
检索DataTypeDefinitions并使用{{检索模型的IPublishedContent ContentType
1}}。
获得这些内容后,您可以根据ContentTypeService
{{1}将PropertyTypes
上的ContentType
与检索到的DataTypeDefionitions
进行匹配}。
PropertyType
具有DataTypeDefinitionId
属性,该属性将与内容本身的属性别名相匹配。
答案 1 :(得分:0)
如果在编辑/创建数据类型时获得了试图从url中找到倍数的数据类型的id,则可以使用内容服务。
@foreach (var p in ApplicationContext.Current.Services.ContentService.GetById(Model.Content.Id).PropertyTypes.Where(p => p.DataTypeDefinitionId == -89))
{
<p>@p.DataTypeDefinitionId</p>
}