我正在使用 PredicateBuilder 针对 Umbraco 节点列表构建查询来过滤搜索结果。我通过 QueryString 将搜索到的 ID 值作为字符串传递,然后将其与列表中每个 Umbraco 节点上的字符串字段进行比较以获取匹配项。
目前,代码对目标字段进行匹配,因为查询字符串中有一个值,效果很好。我需要在 .And() 中添加一个条件,如果该字段有值,则尝试将 QS 与字段字符串进行匹配,但如果该字段没有值,那么它也应该匹配。
if (!string.IsNullOrEmpty(qsId))
{
predicate = predicate.And(i =>
Regex.IsMatch(i.GetProperty("makeTag").Value.ToString(), "\\b" +
qsId + "\\b"));
}
Run Code Online (Sandbox Code Playgroud)
我尝试了以下方法,但似乎无法正常工作:
if (!string.IsNullOrEmpty(qsId))
{
predicate = predicate.And(i =>
Regex.IsMatch(i.GetProperty("makeTag").Value.ToString(), "\\b" +
qsId + "\\b") ||
string.IsNullOrEmpty(i.GetProperty("makeTag")).Value.ToString());
}
Run Code Online (Sandbox Code Playgroud)
关于我做错了什么或者可能有更好的方法来解决这个问题有什么想法吗?
我们目前在我们的网站上使用Sitecore CMS,并且正在考虑在不久的将来添加Sitecore DMS.
我的一位同事坚持认为,必须让我们的页面编辑器和"克隆"功能一起启用,并使我们能够使用DMS.
我熟悉他们的CMS,但不熟悉DMS所以我想知道 - 这是绝对必要的吗?