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

时间:2018-02-12 13:40:48

标签: sitefinity sitefinity-10

我需要在页面头部设置几个元标记值到博客帖子自定义字段中设置的值。

如何从头部访问博客项目viewmodel?

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

试过

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

将相同的行添加到头模板会抛出一个 System.Web.HttpCompileException附上的有用信息很少。我有点期待这一点,因为我怀疑博客帖子的viewmodel只存在于博客小部件的上下文中。

结束我需要在每次更改head cshtml文件后重建,否则我会收到此错误。看到这是一个四分钟的过程,使用Sitefinity(15秒构建,3:45,无论Sitefinity做了大约四分钟),这是一个非常可怕的事情。

但是Model在此级别为空。

也尝试了

根据有用且知识渊博的@Veselin Vasilev,我研究了通过MetaDataFields传递数据。我没有在我的管理部分中看到这些小部件的选项。为了澄清,我使用了内置的" Blog帖子"具有自定义视图文件的小部件。

The advanced edit view

enter image description here

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

1 个答案:

答案 0 :(得分: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及以下:

检查this article

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