果园渲染自定义形状,仅显示一个 child

Orchard rendering custom shape, displaying one child only

我是 orchard 的新手,我很难找到我认为是基本问题的解决方案。

我想为我的自定义内容类型 'Button' 呈现我自己的自定义形状 'Content-Button'。这太棒了!

按钮内容由以下内容组成:

我的自定义形状如下所示:

@using Orchard.Utility.Extensions;
@{
if (Model.Title != null) {
    Layout.Title = Model.Title;
}

Model.Classes.Add("content-item");

var contentTypeClassName = ((string)Model.ContentItem.ContentType).HtmlClassify();
Model.Classes.Add(contentTypeClassName);

var tag = Tag(Model, "div");
tag.AddCssClass("row");
}

@tag.StartElement
  <div id="" class="col-md-8 col-sm-10 col-xs-8 col-xs-push-2 col-sm-push-1 col-md-push-2 btn btn-secondary center-block">
    @Display(Model.Content)
</div>
@tag.EndElement

然而,我想做的不是调用“@Display(Model.Content)”,而是调用要在那里渲染的特定形状。喜欢@Display(Model.Content.DisplayName).

我想对内容选择器做同样的事情,这样我就可以在 div 中创建一个 link(通过 ID)

我也尝试使用我的主题 placement.info) 排除某些(额外的)字段,但似乎我在那里也做错了。

<Match ContentType="Button">
    <Place Parts_Contents_Publish="-"></Place>
    <Place Fields_Common_Text="-"/>
</Match>

注意:'Fields_Common_Text' 纯粹是一个测试,但它仍然在我的按钮上呈现该形状。

如果有人能给我指出正确的方向,解释它或给我一些非常好的文档来阅读,我会很高兴。

您可以直接访问字段如下:

@Model.ContentItem.ButtonPart.DisplayName.Value

与内容选择器字段相同,那么您不再需要使用 placement.info 文件。