Получить настраиваемое поле сообщения блога в заголовке шаблона - Sitefinity

Мне нужно установить несколько значений метатега в заголовке страницы на значения, заданные в пользовательских полях блога.

Как получить доступ к представлению модели блога из головы?

Я создал отдельный фрагмент представления MVC для своей пользовательской головы и сослался на него в макете моего шаблона, это очень хорошо работает.

Пытался

Я использую такие же значения настраиваемых полей в шаблоне блога с помощью ссылок, таких как Model.Item.Fields.MyFieldName.Fields.Title,

Добавление этой же строки в шаблон головы приводит к System.Web.HttpCompileException с небольшой полезной информацией прилагается. Я несколько ожидал этого, так как подозреваю, что viewmodel для поста в блоге существует только в контексте виджета блога.

В итоге мне нужно пересобирать после каждого изменения в файле cshtml head или я получаю эту ошибку. Видя, что это примерно четырехминутный процесс с Sitefinity (15 секунд на сборку, 3:45 на то, что Sitefinity делает в течение примерно четырех минут), это ужасно и ужасно.

Тем не менее Model является нулевым на этом уровне.

Также попробовал

Вечно полезный и хорошо осведомленный @Veselin Vasilev, я пытался передать данные через MetaDataFields. Я не видел эти параметры в своем разделе администратора для виджета. Чтобы уточнить, я использую встроенный виджет "Сообщения блога" с настроенным файлом представления.

Расширенный вид редактирования

введите описание изображения здесь

Но если это возможно, это дает мне надежду, что есть способ передать больше данных, даже если это потребует некоторой работы.

1 ответ

Решение

РЕДАКТИРОВАТЬ: Sitefinity v.10.2 и выше:

Существует более простой способ добиться того, что вы пытаетесь - в режиме редактирования страницы, в виджете "Сообщения блога" нажмите "Изменить", а затем "Дополнительно". Тогда вы должны увидеть кнопку MetaDataFields. Нажмите на нее, и вы увидите несколько полей, связанных с метаданными. В поле MetaTitle введите имя своего настраиваемого поля и сохраните.

Также из документов:

Если вы оставите поле MetaTitle пустым, Sitefinity CMS добавляет его значение из поля "Заголовок" элемента статического содержимого или из поля идентификатора элемента динамического содержимого. В противном случае тег заполняется содержимым поля, которое вы ввели в поле MetaTitle.

Более подробная информация здесь: https://docs.sitefinity.com/configure-meta-title-and-meta-description-on-widget-level

Sitefinity 10.1 и ниже:

Проверьте эту статью

По сути, вы видите ссылку на объект Page, а затем обновляете его заголовок метаданными, которые вам нужны.

Другие вопросы по тегам