Orchardcms 在投影查询中,内容项标记始终为空

Orchardcms 在投影查询中,内容项标记始终为空,orchardcms,Orchardcms,我正在尝试创建一个投影查询,该查询具有基于当前内容项的属性的标题部分过滤器,例如显示文本({content.DisplayText}) 查询不起作用,当我调试解决方案并在StringFilterPerform类的GetFilterPredicate方法上设置断点时,令牌值总是作为空字符串出现。这好像还没有解决。我看到Content Items组中的所有标记都有相同的行为 其他令牌工作正常,例如QueryString({Request.QueryString:})令牌 为什么我的查询过滤器中的内

我正在尝试创建一个投影查询,该查询具有基于当前内容项的属性的标题部分过滤器,例如显示文本(
{content.DisplayText}

查询不起作用,当我调试解决方案并在StringFilterPerform类的GetFilterPredicate方法上设置断点时,令牌值总是作为空字符串出现。这好像还没有解决。我看到Content Items组中的所有标记都有相同的行为

其他令牌工作正常,例如QueryString(
{Request.QueryString:}
)令牌


为什么我的查询过滤器中的内容项标记总是空的?我使用的是Orchard v.1.7.1.0

它不是这样工作的。在此上下文中,标记并不用于生成内容项属性上的查询约束。令牌只能用于提供查询参数的值。如果要筛选内容项的标题,请使用标题部分记录筛选器。

2年后,但在Orchard 1.9.2中,您可以使用令牌基于当前内容项进行查询:

{Request.Content.*}

我缺少令牌的请求部分。不确定这在我最初提问时是否有效。

我不确定我是否理解。我试图使用标题部分记录过滤器中的标记作为查询的参数。我添加了过滤器设置的屏幕截图。当对过滤器求值时,令牌总是一个空字符串。正如我所说的,这是行不通的。您需要将标记转换为动态SQLWHERE子句。这根本不是它的工作原理。查询字符串参数是一个完全不同的问题,因为它是来自环境的一个固定值,可以作为参数注入(与数据库列相反)。幸运的是,正如我在回答中所说,有一个非常好的标题过滤器,您可以使用它来实现所描述的确切场景。