我们在EPiServer(CMS 6 R1)中的动态属性存在一些问题。我已经创建了一个在页面上使用的动态属性。遗憾的是,现有页面上的属性为null。如果我创建了一个全新的页面,甚至复制了一个现有的页面,动态属性也可以正常工作。
有人对现有页面的动态属性有一些经验吗?感觉有些旧东西被保存在某个地方。我已经搜索了数据库,但找不到任何可以删除的内容。
编辑:谢谢你的评论。我已经尝试在页面本身和它的父级中设置属性。然后我使用CurrentPage["fooproperty"]来访问它。也没有其他名为"fooproperty"的属性,我尝试了一些不同的属性名称,但它们在现有页面上都是null。如果我创建了一个相同类型的新页面,那么dynamic属性就可以正常工作。
感谢你的帮助!
添加新的动态属性时,现有页面没有该属性的数据,因此属性包不包含新属性的值。
对于这些现有页面,您需要在页面本身或祖先页面上设置一个新的动态属性的值(记住选中该框可以为子页面设置此值)。
在PageData属性包中看到该属性之前,应用程序可能需要重新启动/回收以刷新缓存的PageData实例。
我设法解决了这个问题。在这种情况下,"动力学特性"工作得很好。问题出现在所使用的定制友好Url解决方案中。
页面可以有不同的友好URL。一些URL使用EPiServer的UrlRewriter,从这些URL的CurrentPage属性访问页面是意料之中的事。
对于其他url(指向同一页面),它们使用overriden UrlRewriter,它实际上使用模板页面(而不是实际页面)并用数据填充它。这意味着使用CurrentPage不会提供实际页面,而是提供模板页面(位于完全不同的位置)。
有点乱,但我知道我知道。感谢您的评论和回答!