我正在使用Orchard v.1.9.2.0。我做了一个名为Event Page的自定义内容定义。以下是我为其创建的字段和部件的屏幕截图:
我的问题是......我希望能够控制“事件详细信息页面”布局,以便我可以将这些字段准确放置在我想要放置的位置。
现在,默认情况下,Content.cshtml有@Display(Model.Content)
并将所有这些字段自行写出来。
我认为我可以使用Layouts功能实现这一点,但我没有在布局编辑器中看到这些新定义的字段。我现在想,我可以直接将这些字段显示到content.cshtml吗?
例如,在我的自定义内容类型中,我有一个名为Event Logo的字段,我尝试使用@Display(Model.Content.EventPage.EventLogo)
,但是它以纯文本格式呈现给Orchard.MediaLibrary.Fields.MediaLibraryPickerField
。
答案 0 :(得分:0)
奇怪的是,当您创建/编辑事件页面时,字段应位于工具箱中(如果您创建的字段不会显示在工具箱中)。
如果您在不同的位置使用字段值(或计划使用它)(摘要视图,投影),则使用布局中的字段。否则,使用布局元素(如html,图像,段落等)会更简单。
如果您有某些页面结构只使用了那些字段。通过placement.info配置位置可能更简单(您将有机会在一个地方修改所有事件页面的结构,并且内容管理器将不受影响构建正确的页面结构。)
您可以通过placement.info
将字段包含到任何本地区域<Match ContentType="EventPage">
<Match DisplayType="Detail">
<Place Fields_Common_Text-LatestNew="LatestNewsAndRaceResultLocalZoneName:1"
Fields_Common_Text-RaceResults="LatestNewsAndRaceResultLocalZoneName:2"
Fields_MediaLibraryPicker-EventLogo="OtherLocalZoneName:1"
/>
</Match>
</Match>
然后创建备用Content-EventPage.Detail.cshtml
(通过复制和重命名Content.cshtml
)。
最后在Content-EventPage.Detail.cshtml
内你可以使用
@Display(Model.LatestNewsAndRaceResultLocalZoneName)
@Display(Model.OtherLocalZoneName)