我有一个包含单个Rich Text字段的组件。在子布局中,该字段将呈现为带有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&_z=z">Go to another page</a>
我很确定这是Glass的一个问题。如何在页面编辑器中保持字段可编辑,但是使其正确呈现链接?
答案 0 :(得分:2)
You can check if you have proper attribute in the model.
If you have SitecoreFieldSettings.RichTextRaw attribute, it will NOT pass through render pipeline and returns the RAW HTML. Instead if you use Default (SitecoreFieldSettings.Default), rich text content will go through render pipeline and url will be in friendly format.
http://docs.glass.lu/html/d44739b2-5f0e-d862-f62c-86c50f0b262f.htm
答案 1 :(得分:0)
您是否可以尝试将其从使用文字更改为直接使用Editable()方法,例如:
<%= Editable(GlassItem, x => x.Body) %>
答案 2 :(得分:0)
我认为Initialize()
在页面生命周期中太早了。尝试进一步移动,比如Page_Load()
左右。