【问题标题】:Orchard CMS: adding filter to Contents/ListOrchard CMS:向内容/列表添加过滤器
【发布时间】:2014-09-12 05:20:52
【问题描述】:

我正在尝试向 Orchard 中的内容列表 (admin/contents/list) 添加一个额外的过滤器选项。我从按内容类型复制现有过滤器开始,并且已经能够显示我的新过滤器列表、填充它等等。

在 Contents 的 AdminController 中有一个名为 List 的 ActionResult 方法,该方法在初始加载时以及在发布后(通过重定向)都被调用,这似乎是构建查询的地方。查看现有的内容类型过滤器,我看到了:

query = query.ForType(model.TypeName);

我在这里有点困惑的是如何扩展此示例以按内容项的语言环境(文化)进行查询。使用 .ForPart 方法有意义吗?虽然在这里我需要小心,因为在默认视图中我只想显示“en” - 但我也想显示没有 LocalizationPart 的任何项目(而不是当我实际按特定文化过滤时 - 然后不想要显示没有 LocalizationPart 的项目)

我已经阅读了以下内容,但这些似乎都没有解决我的确切情况(除非我读错了)..

如果有人可以向我提供有关在哪里查看的指示,将不胜感激。

【问题讨论】:

    标签: c# filtering orchardcms


    【解决方案1】:

    如果指定了文化,您可以添加query = query.Where<LocalizationPart, LocalizationPartRecord>(x => x.Culture == "en"),而在其他情况下不要调用它。

    【讨论】:

    • 多么奇怪 - 在昨天发布问题后,我开始使用一些不同的选项,包括查看如何在 LocalizationService 中进行过滤 - 但由于某种原因,当我尝试使用与上述类似的东西时它不起作用。但是,如果我这样更改它,我就能让它工作:'query = query.Where(x => x.CultureId ==cultureId);'原来我在其他地方的代码中有一个错误,导致cultureId 设置不正确。谢谢!
    猜你喜欢
    • 2020-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多