我正在使用Orchard CMS,我添加了一个自定义内容部分,以便我可以逐页覆盖页面标题和元描述。
我的问题是我无法弄清楚如何在视图中获取这些值。
如果我将内容添加到字段中,它只会显示在主要内容正文中。
那里的任何果园大师都可以提供帮助吗?!
答案 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。