EPiServer:我可以从代码隐藏设置动态属性吗?

时间:2012-01-13 21:45:07

标签: asp.net episerver

我尝试将其设置为普通页面属性,但没有运气。

猜猜我可以使用DynamicProperty类,但我真的想避免这种情况,因为没有缓存问题。

建议任何人?

1 个答案:

答案 0 :(得分:1)

AFAIK执行此操作的唯一方法是使用DynamicProperty类。如果您查看PageData对象上的索引器属性的文档,它会说:

  

请注意!使用此索引器将使用Pre和Post处理程序进行属性查找。我不保证返回值属于页面,但可能是动态属性,“fetch-data-from”-data等。要保证数据属于此页面,请使用GetValue和SetValue方法。

     

另请注意,使用此索引器设置值将仅设置实际属于页面的值,即您可以通过从索引器读取来获取有效值,但尝试为同一索引设置新值可能会产生异常因为页面中不存在该值。

您需要使用DynamicProperty类:

DynamicProperty myDynProp = DynamicProperty.Load(CurrentPage.PageLink, "PropertyName");
myDynProp.PropertyValue.Value = "new value";
myDynProp.Save();

或者,您可以使用Joel讨论here

的想法绕过动态属性