我目前陷入了一个尚未找到解决方案的问题。我们使用自己的 API 来调用 Sitefinity 并返回名为 的对象Insights。我们目前尝试仅返回IsFeatured值设置为 的见解yes。1它以 a或 a 的形式返回0。据我所知,问题出在我的查询字符串中。我得出这个结论是因为一开始我们使用的是查询$"/insights?$orderby=PublishDate&$top={topN}"。这按预期返回了见解,按 PublishDate 排序,并且仅返回我们输入的值,例如3。当我尝试将过滤器添加到查询中时出现问题。目前它看起来像这样:$"/insights?$filter=contains(IsFeatured, 1)&$orderby=PublishDate&$top={topN}"。然而,当它运行时,它会返回错误请求代码 400。我们之前也使用过过滤器,如下例所示:$"/insights?$filter=contains(InsightCategory, 'NEWSLETTER')&$orderby=PublishDate&$skip={skip}&$top={take}"这按预期工作。我尝试了一些变体来尝试让它工作,但所有请求都返回 400。更多可能有帮助的信息是 IsFeatured 返回的类型是 int。此调用也返回该值:$"/insights?$orderby=PublishDate&$top={topN}"。我可以在结果中看到这一点:此外,大写的语法是正确的,因为如上面所见,工作的过滤器请求使用相同的语法。我也尝试用 a 替换 进行1测试0,但这也失败了。
1 回答
芜湖不芜
TA贡献1796条经验 获得超7个赞
选择字段与其他字段略有不同。
按 ChoiceField 值过滤集合
注意:通过 OData Web 服务使用 ChoiceField 时,字段值以数字形式返回(例如 2、4、8),而不是该字段中实际选择的文本值(例如选项 1、选项 2、选项 3)。返回值表示已选择哪个选项。它以 2 的幂形式返回该选项在所有选项集合中的位置 (2n)。例如,如果您为 ChoiceField 配置了 4 个选项 - 选项 1、选项 2、选项 3、选项 4,则服务返回的值将是:
如果所选选项为选项 1,则服务返回 1(2 的 0 次方) 如果所选选项为选项 2,则服务返回 2(2 的 1 次方) 如果所选选项为选项 3,则服务返回返回 4(2 的 2 次方) 如果所选选项是选项 4,则服务返回 8(2 的 3 次方)
- 1 回答
- 0 关注
- 98 浏览
添加回答
举报
0/150
提交
取消