我需要创建一个cshtml渲染和Sitecore控件,允许我从Sitecore字段插入JavaScript。然后我可以将此控件附加到布局以在页面上插入JavaScript。
我尝试将<script>
插入到使用富文本编辑器的控件中,但Sitecore默认从编辑器中删除了<script>
,这使我得到了这个解决方案。
我知道基础知识 - 需要有cshtml渲染,一个模板(假设只有一个字段,一个多行文本字段),以及一个带有cshtml文件路径的布局渲染,但不止于此。
开发人员使用了Glass Mapper,我不知道它如何影响上述内容,或者如何重新实现它。这将是我的第一个控制。这是一个示例cshtml文件,如果它有帮助:
@inherits Glass.Mapper.Sc.Web.Mvc.GlassView<Company.Model.TDS.sitecore.templates.User_Defined.Company.Platform.Modules.Common.Sidebar_Text_Callout>
@if (Model != null)
{
<div class="sidebar-text-callout">
<h3>@Editable(Model, x => x.Sidebar_Callout_Title)</h3>
<p>@Editable(Model, x => x.Sidebar_Callout_Copy)</p>
@if (Model.Sidebar_Callout_Link != null)
{
<div class="all-caps-callout">
<a class="link-with-icon" href="@Model.Sidebar_Callout_Link.Url" target="@Model.Sidebar_Callout_Link.Target">@Model.Sidebar_Callout_Link.Text <span class="svg">@Html.Partial("~/Views/Icons/arrowRight.cshtml")</span></a>
</div>
}
</div>
}
答案 0 :(得分:2)
根据您提供的示例代码中的模型命名空间来判断,您的开发人员使用TDS及其code generation功能来生成Sidebar_Text_Callout
类。
我建议您坚持使用相同的过程来创建JavaScript呈现。创建基于Glass的视图渲染的说明过于宽泛,无法涵盖在此上下文中,因此我在下面列出了一些高级步骤。 Glass网站以及Sitecore自己的文档应该更详细地介绍这一点。
.cshtml
文件的位置。Cacheable
和Vary By Data
)示例视图
@inherits Glass.Mapper.Sc.Web.Mvc.GlassView<Company.Model.TDS.sitecore.templates.User_Defined.Company.Platform.Modules.Common.PageLevelJavaScript>
@if (Model != null)
{
@Html.Raw(Model.MyJavaScriptField)
}