我无法相信我在网上找不到例子。
这就是我的尝试:
<img src="@CurrentPage.ctaTopLeft.image" alt="@CurrentPage.ctaTopLeft.text">
但它会出现此错误:
'Archetype.Models.ArchetypeModel'不包含'image'的定义
编辑:这有效:
<img src="@CurrentPage.GetPropertyValue("ctaTopLeft").Fieldsets[0].GetValue("image")" alt="@CurrentPage.GetPropertyValue("ctaTopLeft").Fieldsets[0].GetValue("text")">
想知道是否有更短的写作方式?
答案 0 :(得分:4)
嗯,没有 - 一个Archetype属性可以在集合中经常有一组复杂的嵌套数据,这些集合也可以嵌套。实际上,如果你有例如嵌套的Archetype属性(它会发生),那么使用相应的嵌套局部视图集就可以正常渲染它。
有一些教程/样本可用于此类事情:
还有其他软件包可以帮助您将Archetype属性映射到POCO - 例如https://our.umbraco.org/projects/developer-tools/archetype-mapper/
答案 1 :(得分:3)
我更喜欢获取属性的打字方式。
var property = Model.Contet.GetPropertyValue<ArchetypeModel>("yourArchetypePropertyAlias");
if (property != null && property.Any()) {
foreach (var item in property) {
var imageId = item.GetValue<int>("yourImagePropertyAlias");
var text = item.GetValue<string>("yourTextPropertyAlias");
}
}