1

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

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

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

试过了

我通过引用(如Model.Item.Fields.MyFieldName.Fields.Title.

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

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

然而,Model在这个级别是空的。

也试过

根据乐于助人且知识渊博的@Veselin Vasilev,我研究了通过 MetaDataFields 传递数据。我在小部件的管理部分中没有看到这些选项。澄清一下,我正在使用带有自定义视图文件的内置“博客文章”小部件。

高级编辑视图

在此处输入图像描述

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

4

1 回答 1

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 对象的引用,然后使用您需要的元数据更新其 Header。

于 2018-02-12T23:53:43.967 回答