1

我有一个包含单个富文本字段的组件。在sublayout中,该字段呈现为Html.Editable with Glass,这样它就可以在PageEditor的页面上进行编辑。它看起来像这样:当通过玻璃渲染时Sitecore富文本链接不方便用户使用

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的问题。如何在页面编辑器中保持字段可编辑,但使其正确显示链接?

+2

的可能的复制[插入富文本编辑器Sitecore的链接都没有解决用户友好的URL](http://stackoverflow.com/questions/38147672/sitecore-links-inserted-in-rich- text-editor-are-not-resolved-to-user-friendly-ur) – Gatogordo

回答

0

你可以尝试从使用文字使用可编辑()方法直接,像改变:

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

我觉得Initialize()是在页面生命周期太快。尝试进一步沿着,如Page_Load()左右。

2

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

如果你有SitecoreFieldSettings.RichTextRaw属性,它会穿过渲染管线和返回原始的HTML。相反,如果您使用默认SitecoreFieldSettings.Default),富文本内容将通过渲染管道,url将采用友好的格式。

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

+0

有没有办法让原始文本通过渲染管道? – sniels