在Episerver中使用FindPagesWithCriteria不会返回任何结果

时间:2013-10-09 11:29:24

标签: episerver

我想知道是否还有其他人来过这个问题。我正在尝试使用FindPagesWithCriteria,我正在创建我的属性标准:

PropertyCriteria dateCriteria = new PropertyCriteria();
dateCriteria.Condition = CompareCondition.GreaterThan;
dateCriteria.Name = "PageStopPublish";                
dateCriteria.Type = PropertyDataType.Date;
dateCriteria.Value = DateTime.Now.ToString();
dateCriteria.Required = true;

所以我试图找到所有未过期的页面。但是,某些页面可能没有设置StopPublish属性,在这种情况下应使用Datetime.MaxValue。但在这种特殊情况下(没有设置StopPublish值),FindPagesWithCriteria不会返回任何结果。有这个原因还是个bug?作为一种解决方法,我使用PageTypeName条件返回,然后为返回的PageDataCollection应用一些额外的filterin

2 个答案:

答案 0 :(得分:3)

FindPagesWithCriteria只会为您提供已发布的页面(以及当前用户有权访问的页面),因此不需要将StopPublish作为条件。

FindAllPagesWithCriteria将返回所有页面,包括当前用户无权访问的未发布页面和页面。

答案 1 :(得分:0)

具有空值的EPiServer属性永远不会存储在数据库中。如果从代码访问它,它将始终为null。

要使用PropertyCriteria搜索null属性,请将IsNull属性设置为true