是否可以在一种显示类型中渲染两次? - Orchard CMS

时间:2016-09-13 13:44:22

标签: orchardcms

我有一个内容类型,事件,它有一个部分“StartDate”,我需要在摘要视图中显示两次。在placement.info中是否可以在“this”区域和“那个”区域中呈现该部分?

3 个答案:

答案 0 :(得分:6)

将区域渲染两次

可能不仅仅使用placement.info文件,但如果您修改.cshtml视图,则可以只渲染两次。

对于测试,我刚编辑了我的博客详细信息视图以获取此代码:

    @Display(Model.Content)
    @Display(Model.Content)

它工作,并显示两次。你可能应该小心这一点,因为在那个例子中它渲染了我的Disqus评论两次创建了一个冲突,因为在一个页面上使用了两次相同的id。

使用部件重定位

进行微调

如果您需要从现有区域中提取一些内容(形状/部分),您也可以使用名为“部件重定位”的内容来执行此操作,此内容将在此Orchard Harvest Session中进行说明。

基本思想是使用展示位置将其隔离到自己的区域:

<Match ContentType="News" DisplayType="Detail">
    <Place Parts_StartDate="MakeUpAZoneName" />
</Match>

(注意:Match标记只是一个示例,您需要将Place放入您想要的任何匹配项中

然后你可以使用@Display()在.cshtml文件中渲染出来,如:

@Display(Model.MakeUpAZoneName)

... other html code ...

@Display(Model.MakeUpAZoneName)

答案 1 :(得分:2)

您不能两次渲染相同的形状,但只需从驱动程序返回组合形状并在不同区域渲染每个形状。

答案 2 :(得分:0)

不可能,只有文件Parent parent = FXMLLoader.load(getClass().getResource("AolRun.fxml")); Stage stage = new Stage(); stage.initStyle(StageStyle.UTILITY); stage = (Stage) run.getScene().getWindow(); Scene scene = new Scene(parent); stage.setScene(scene); scene.getStylesheets().add("/css/Style.css"); stage.setTitle("Output"); stage.setResizable(false); stage.show(); 中的第一个有效。