在模板头中获取博客 post 自定义字段 - Sitefinity

Get blog post custom field in template head - Sitefinity

我需要将页面标题中的几个元标记值设置为博客 post 自定义字段中设置的值。

如何从头部访问博客项目视图模型?

我已经为我的自定义头部创建了一个单独的 MVC 视图片段,并在我的模板布局中引用了它,这很有效。

尝试过

我通过 Model.Item.Fields.MyFieldName.Fields.Title 等引用在我的博客模板中获取了一些相同的自定义字段值。

将同一行添加到头部模板会引发 System.Web.HttpCompileException 附加的有用信息很少。我有点预料到这一点,因为我怀疑博客 post 的视图模型仅存在于博客小部件的上下文中。

最终我需要在每次更改 head cshtml 文件后重建,否则我会收到此错误。鉴于这是关于 Sitefinity 的 four-minute 过程(构建 15 秒,3:45 做 Sitefinity 做的任何事情大约四分钟),这是一件非常可怕的事情。

但是 Model 在此级别为空。

也试过

根据 ever-helpful 和知识渊博的@Veselin Vasilev,我研究了通过 MetaDataFields 向上传递数据。我没有在小部件的管理部分看到这些选项。为澄清起见,我将 built-in "Blog posts" 小部件与自定义视图文件一起使用。

但如果有可能做到这一点,它让我希望有一种方法可以向上传递更多数据,即使这需要一些工作。

编辑:Sitefinity v.10.2 及更高版本:

有一种更简单的方法可以实现您正在尝试的目标 - 在页面编辑模式下,在“博客文章”小部件中单击“编辑”,然后单击“高级”。然后您应该看到一个 MetaDataFields 按钮。单击它,您应该会看到几个与元数据相关的字段。 在 MetaTitle 字段中输入自定义字段的名称并保存。

此外,来自文档:

If you leave MetaTitle field empty, Sitefinity CMS adds takes its value from the Title field of the static content item or from the identifier field of a dynamic content item. Otherwise, the tag is populated with the contents of the field that you have entered in MetaTitle field.

更多细节在这里: https://docs.sitefinity.com/configure-meta-title-and-meta-description-on-widget-level

Sitefinity 10.1 及以下版本:

勾选this article

基本上,在您的视图中,您会获得对 Page 对象的引用,然后使用您需要的元数据更新其 Header。