Razor 如何用剃刀使用原型?

Razor 如何用剃刀使用原型?,razor,umbraco,umbraco7,archetypes,Razor,Umbraco,Umbraco7,Archetypes,我不敢相信我在网上找不到例子 这是我的简单原型。 这就是我所尝试的: <img src="@CurrentPage.ctaTopLeft.image" alt="@CurrentPage.ctaTopLeft.text"> 但它给出了这样一个错误: “Archetype.Models.ArchetypeModel”不包含“image”的定义 编辑:此功能: <img src="@CurrentPage.GetPropertyValue("ctaTopLeft").Fie

我不敢相信我在网上找不到例子

这是我的简单原型。

这就是我所尝试的:

<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")">


想知道是否有更短的编写方法吗?

嗯,没有-原型属性可以在集合中有一组复杂的嵌套数据,这些数据也可能是嵌套的。事实上,如果您有嵌套的原型属性(例如,这种情况会发生),则通常使用相应的嵌套局部视图集来正确渲染它

有一些教程/示例可用于此类内容:

  • -Github上的原型主页
  • -这一个链接自上面的原型页面-给出了一些使用Razor/MVC的示例

还有其他一些软件包可以帮助您将原型属性映射到POCO,例如,

我更喜欢以类型化的方式获取属性

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");
    }
}
var-property=Model.Contet.GetPropertyValue(“yourArchetypePropertyAlias”);
if(property!=null&&property.Any()){
foreach(属性中的var项){
var imageId=item.GetValue(“yourImagePropertyAlias”);
var text=item.GetValue(“yourTextPropertyAlias”);
}
}

打字方式也是我首选的出发点;但是,您仍然需要迭代,如果您有嵌套的原型属性,您很可能希望使用某种层次结构的局部视图集。