Glass.Mapper BeginRenderLinkについては、複数の HTML 要素を含む必要があるリンクをレンダリングするメソッドとして説明されています: http://glass.lu/docs/tutorial/sitecore/tutorial22/tutorial22.html
追加したいのは、そのリンクへのカスタム属性 (クラス、スタイル) です。
<% using (BeginRenderLink(x => x.Image1Link,
new NameValueCollection
{ { "class", "image-banner" }, { "style", string.Format("background-image: url({0})", Model.Image1.Src) } }, true))
{ %>
<span class="image-banner-wrapper">
<span class="image-banner-content"><%= Editable(x => x.Image1Text) %></span>
</span>
<% } %>
この追加の属性は通常モードでは正常に機能しますが、編集モードでは表示されません。
これは、BeginRenderLink の Glass.Mapper ソースで見つかったものです。
if (IsInEditingMode && isEditable)
{
return MakeEditable(field, null, model, "haschildren=true", _context, SitecoreContext.Database, writer);
}
else
{
return BeginRenderLink(field.Compile().Invoke(model) as Fields.Link, attrs, string.Empty, writer);
}
したがって、編集モードの場合、追加の属性は適用されず、「haschildren=true」のみが渡されます。
誰かがその問題を何とか解決しているのだろうか?