【问题标题】:Get blog post custom field in template head - Sitefinity在模板头中获取博客文章自定义字段 - Sitefinity
【发布时间】:2018-02-12 13:40:48
【问题描述】:

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

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

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

试过

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

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

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

但是,Model 在此级别为空。

也试过了

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

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

【问题讨论】:

  • 如果使用内置元功能不起作用,请提供更多有关您尝试完成的任务的上下文,代码示例也有帮助/
  • @JonR。不幸的是,我没有任何其他代码示例。我在 CMS 的博客中设置了一个自定义字段,然后如上所述在我的 MVC 视图中访问它。现在我正在尝试获取 MVC 模板中的那些自定义字段(特别是页面的头部),但它似乎还没有填充该模型,或者至少我找不到访问它的位置。

标签: sitefinity sitefinity-10


【解决方案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。

【讨论】:

  • 不错的想法,但实际上我有几个以这种方式设置的自定义字段。
  • 抱歉,我没听明白 - 它对你有用吗?如果没有,为什么?
  • 查看更新的 OP 了解更多信息,但我找不到这些属性。
  • 无赖,他们在 v.10.2 中添加了它们 - 更新了我上面的答案
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-13
  • 1970-01-01
相关资源
最近更新 更多