1

我有一个包含单个富文本字段的组件。在子布局中,该字段使用 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 的问题。如何在页面编辑器中保持该字段可编辑,但使其正确呈现链接?

4

3 回答 3

2

您可以检查模型中是否具有正确的属性。

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

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

于 2017-04-06T17:14:12.650 回答
0

我认为Initialize()在页面生命周期中为时过早。尝试将它移动得更远,比如 toPage_Load()左右。

于 2016-07-05T09:07:39.437 回答
0

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

<%= Editable(GlassItem, x => x.Body) %>
于 2016-07-01T19:28:04.700 回答