我正在尝试从sitecore创建自定义链接到我的视图
@Html.Sitecore().Field("CTA display", Model.Item, new { text = "<span>" + + "</span>"})
我不是100%确定这样做的正确方法是什么,但我想将链接中的文本包装成样式。我已经尝试将Model.Rendering.Item.Fields["CTA display"]
放入.Text
并且它不起作用。
任何帮助将不胜感激。
答案 0 :(得分:2)
首先,我首先创建一个SitecoreHelper扩展方法,允许您修改要渲染的元素的内部html:
public static HtmlString Field(this SitecoreHelper helper, string fieldName, Item item, object parameters, string innerHtml)
{
if (helper == null)
{
throw new ArgumentNullException("helper");
}
if (innerHtml.IsNullOrEmpty())
{
return helper.Field(fieldName, item, parameters);
}
return new HtmlString(helper.BeginField(fieldName, item, parameters).ToString() + innerHtml + helper.EndField().ToString());
}
这将允许您传递一个可选的innerHtml
字符串,该字符串将插入元素的开始和结束标记之间(在本例中为<a>
标记)。
从这里,将包含CTA标签的html字符串传递给上述方法,或者修改方法以输出包含在<span>
中的字段的Text值。
答案 1 :(得分:0)
我使用了上面由computerjules发布的解决方案。然后,您可以调用扩展方法,如下所示
@Html.Sitecore().Field("Link", Html.Sitecore().CurrentItem, new {Class = "some-class"}, "<span class='some-other-class'></span>")
并且跨度在锚标签中呈现