Пользовательская ссылка Sitecore MVC

#asp.net-mvc-4 #sitecore #sitecore7 #sitecore-mvc

#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 и это не сработало.

Любая помощь будет оценена.

Ответ №1:

Во-первых, я бы начал с создания метода расширения 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> тегом).

Отсюда передайте свою HTML-строку, содержащую вашу метку CTA, вышеуказанному методу или измените метод для вывода текстового значения поля, заключенного в a <span> .

Комментарии:

1. Есть ли какой-либо способ добавить текст <span></span>привязки before ?.

Ответ №2:

Я использовал решение, опубликованное выше computerjules, которое отлично сработало. Затем вы можете вызвать расширенный метод следующим образом

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

и диапазон отображается на вкладках привязки