果园自定义元标记

时间:2014-06-25 13:02:05

标签: .net razor orchardcms

我正在使用Orchard CMS,我添加了一个自定义内容部分,以便我可以逐页覆盖页面标题和元描述。

我的问题是我无法弄清楚如何在视图中获取这些值。

如果我将内容添加到字段中,它只会显示在主要内容正文中。

那里的任何果园大师都可以提供帮助吗?!

1 个答案:

答案 0 :(得分:2)

如果您看一下已经完成此操作的模块,例如Bertrand Le Roy的Vandelay模块,那么有一些很好的代码示例。

类似的东西:

protected override DriverResult Display(MetaPart part, string displayType, dynamic shapeHelper) {
            if (displayType != "Detail") return null;
            var resourceManager = _wca.GetContext().Resolve<IResourceManager>();
            if (!String.IsNullOrWhiteSpace(part.Description)) {
                resourceManager.SetMeta(new MetaEntry {
                    Name = "description",
                    Content = part.Description
                });
            }
            if (!String.IsNullOrWhiteSpace(part.Keywords)) {
                resourceManager.SetMeta(new MetaEntry {
                    Name = "keywords",
                    Content = part.Keywords
                });
            }
            return null;
        }

基本上它使用内容部分的驱动程序向资源管理器添加新的元标记,这将在页面的头部打印出元标记。您想要检查以确保它仅对详细内容项执行以避免多次覆盖,如上所示。

再一次,代码信用归功于Bertrand Le Roy。