2014-06-13 80 views
0

我試圖創建Sitecore的自定義鏈接到我的觀點Sitecore的MVC自定義鏈接

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

我不是100%肯定該怎麼做這種正確的做法是,但我想換行從文本鏈接到一個樣式。我試圖將Model.Rendering.Item.Fields["CTA display"].Text放在那裏,它不起作用。

任何幫助,將不勝感激。

回答

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值。

+0

有什麼辦法來追加前錨文本中呈現? – PaRsH

0

我使用了上面提到的computerjules的解決方案。然後,您可以調用擴展方法如下喜歡

@Html.Sitecore().Field("Link", Html.Sitecore().CurrentItem, new {Class = "some-class"}, "<span class='some-other-class'></span>") 

和跨度錨標籤