【问题标题】:Sitecore Rich Text links not user friendly when rendered through Glass通过 Glass 呈现时,Sitecore 富文本链接对用户不友好
【发布时间】:2016-07-01 17:13:47
【问题描述】:

我有一个包含单个富文本字段的组件。在子布局中,该字段使用 Glass 呈现为 Html.Editable,以便可以在 PageEditor 中的页面上对其进行编辑。它看起来像这样:

public override void Initialize()
{
    litBodyContent.Text = Html.Editable(GlassItem, item => item.Body);
}

<div style="min-height: 38px">
    <asp:Literal runat="server" ID="litBodyContent" />
</div>

但是,当我使用富文本编辑器插入链接时,在呈现页面时(在发布后的普通视图中,而不是在页面编辑器中),链接使用项目 ID 而不是用户友好的路径呈现,例如这个:

<a href="~/link.aspx?_id=D9D103AD60DA4B318521801ADA863222&amp;_z=z">Go to another page</a>

我很确定这是 Glass 的问题。如何在页面编辑器中保持该字段可编辑,但使其正确呈现链接?

【问题讨论】:

标签: sitecore rich-text-editor richtext glass-mapper page-editor


【解决方案1】:

您可以检查模型中是否有适当的属性。

如果您有 SitecoreFieldSettings.RichTextRaw 属性,它将通过渲染管道并返回 RAW HTML。相反,如果您使用 Default (SitecoreFieldSettings.Default),富文本内容将通过渲染管道,并且 url 将采用友好格式。

http://docs.glass.lu/html/d44739b2-5f0e-d862-f62c-86c50f0b262f.htm

【讨论】:

  • 有没有办法手动让原始文本通过渲染管道?
【解决方案2】:

您可以尝试将其从使用文字更改为直接使用 Editable() 方法吗,例如:

<%= Editable(GlassItem, x => x.Body) %>

【讨论】:

    【解决方案3】:

    我认为Initialize() 在页面生命周期中为时过早。尝试进一步移动它,例如 Page_Load() 左右。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-11-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-22
      • 1970-01-01
      • 2023-04-09
      • 1970-01-01
      相关资源
      最近更新 更多