#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>")
и диапазон отображается на вкладках привязки