【发布时间】:2018-03-01 22:37:38
【问题描述】:
我正在对自定义表进行字段验证。 这是验证字段上的宏:
{%
foreach (i IN CMSContext.Current.GlobalObjects.CustomTables["customtable"].Items.ItemsAsFields.IdNumber)
{
if (i == IdNumber.Value){
return false;
}
}
return true;
#%}
问题从这部分宏开始: CMSContext.Current.GlobalObjects.CustomTables["customtable"].Items.ItemsAsFields.IdNumber
这行宏应该会获取我自定义表中输入的所有数据,但是它没有获取最近的数据。 在这种情况下,我的验证将不起作用,我将继续输入相同的 IdNumber。
当我通过 System - Macro - Benchmark 运行此宏时,这就是我发现的方式: {%CMSContext.Current.CMSContext.Current.CMSContext.Current.GlobalObjects.CustomTables["customtable"].Items.ItemsAsFields.ItemID #%}
我测试了“清除缓存”,这很有效。所以在我看来缓存问题。
所以我在设置 - 系统 - 性能中关闭了所有缓存:
服务器内容缓存
服务器文件缓存
客户端缓存
输出缓存
然而,当我输入新数据时,那行宏没有返回最新数据。
有没有办法通过宏或其他选项清除缓存来解决这个问题?
【问题讨论】: