gpt4 book ai didi

tridion - 如何在Tridion的DD4T中使用SiteEdit

转载 作者:行者123 更新时间:2023-12-04 05:19:42 25 4
gpt4 key购买 nike

谁能指导我如何在DD4T代码中使用Razor模板中的SiteEdit特定语法或标记?我已经在其中看到了Site Edit的相关类,但是在其中有一些类似于Dreamweaver的语法的 View 中无法理解如何使用SiteEdit标记,例如我们在Dreamweaver中使用的RenderComponentFieldtcdl:ComponentField。我是DD4T的新手,正在使用SiteEdit 2009 SP3和SDL Tridon 2011 SP1。

提前致谢。

更新:我们已经尝试了答案中提到的实现,但是很遗憾,我们在访问代理中的页面时收到错误消息,指出“无效的模板-HTML无效,可能是因为您的模板代码生成了无效的HTML,例如内部的ap标记另一个p标签。请使用W3C标记验证服务之类的验证器检查HTML,更正您的模板,然后重新发布。”
我猜这是因为Xml内容由于使用了我们在组件模板和页面模板中使用的动态页面和组件TBB而被推送到html页面中。

让我们知道如何继续。

最佳答案

不会像在Dreamweaver模板中那样生成SiteEdit标记,您有责任自己将可编辑字段的标记放置在Razor View 中。这样做的好处是,它适用于SiteEdit 2009 SP3和UI 2012类似。UI2012的缺点是(尚未)监听(可以在组件或页面模板上设置的启用内联编辑)(我们应该这样做)。考虑使用 future 的DD4T版本)。

一切都基于DD4T SiteEditHelper类。通过发出以下调用,从页面 View (在</body>标记之前)开始:



@Html.SiteEditPage(Model)

这将写出页面标记,并且如果您在SiteEdit_config.xml中将样式设置为“SiteEdit2012”,它还将写出UI 2012所需的引导脚本。

然后,对于每个组件表示和每个可编辑的组件字段,您还需要添加适当的标记。对于组件演示,您可以使用:

@{var ComponentPresentation = ViewBag.ComponentPresentation as IComponentPresentation;}
<div>
@Html.SiteEditComponentPresentation(ComponentPresentation)
</div>

确保将此内容写在DIV或其他可以标记组件表示形式边界的元素内。对于类似“组件字段”的故事,可以使用:

<div>
@Html.SiteEditField(Model, Model.Fields["FieldName"])
@Model.Fields["FieldName"].Value
</div>

关于tridion - 如何在Tridion的DD4T中使用SiteEdit,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10810587/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com