0

我正在使用 Orchard v.1.9.2.0。我制作了一个名为 Event Page 的自定义内容定义。这是我为其创建的字段和部件的屏幕截图:

在此处输入图像描述

我的问题是......我希望能够控制“事件详细信息页面”布局,以便我可以将每个字段准确地放置在我想要放置它们的位置。

现在,默认情况下,Content.cshtml 拥有@Display(Model.Content)并自己将所有这些字段写入页面。

我以为我可以使用布局功能来实现这一点,但我在布局编辑器中看不到这些新定义的字段。我现在在想,我可以将这些字段中的每一个直接显示到 content.cshtml 中吗?

例如,在我的自定义内容类型中,我有一个名为 Event Logo 的字段,我尝试使用@Display(Model.Content.EventPage.EventLogo),但是它呈现Orchard.MediaLibrary.Fields.MediaLibraryPickerField给浏览器的只是纯文本。

4

1 回答 1

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)
于 2015-11-08T00:26:16.767 回答