Sitecore MVC自定义链接

时间:2014-06-13 18:51:46

标签: asp.net-mvc-4 sitecore sitecore7 sitecore-mvc

我正在尝试从sitecore创建自定义链接到我的视图

@Html.Sitecore().Field("CTA display", Model.Item, new { text = "<span>" +  + "</span>"})

我不是100%确定这样做的正确方法是什么,但我想将链接中的文本包装成样式。我已经尝试将Model.Rendering.Item.Fields["CTA display"]放入.Text并且它不起作用。

任何帮助将不胜感激。

2 个答案:

答案 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>")

并且跨度在锚标签中呈现