0

我看过下面的帖子,看起来和我的很相似。 使用 Placement.info 在 Orchard CMS 中显示自定义内容部分的摘要视图时出现问题

但是当我将我的代码与解决方案进行比较时,我找不到任何不同之处。

这就是我想要实现的目标:

我有两个自定义内容部件构建 QuestionRecord 和 ExpertRecord。这两个部分之间的关​​系是专家对网站用户发布的问题的回答。

我有一个全局搜索模块,它应该显示问题和专家答案的组合摘要结果。但是专家部分不知何故没有选择摘要视图,它总是显示详细视图。

安置信息:

 <Match ContentType="ExpertRecord">
     <Match DisplayType="Detail">
       ... ...
     </Match>
     <Match DisplayType="Summary">
       <Place Parts_Expert_Summary="Content:2" />
       <Place Parts_Expert="-" />
     </Match>
 </Match>

ExpertDriver 中的驱动程序结果方法:

 protected override DriverResult Display(Expert part, string displayType, dynamic shapeHelper)
 {
        List<dynamic> questions = new List<dynamic>();
        string partName = "Parts_Expert";
        switch (displayType)
        {
            case "Detail":
                // only load questions when showing detail record.
                questions = _questionService.GetQuestionsByExpert(part.ContentItem);
                break;
            case "Summary":
                partName += "_Summary";
                break;
        }
        return ContentShape(partName,
            () => shapeHelper.Parts_Expert(ContentItem: part.ContentItem, Questions: questions));
 }

意见:

@Model dynamic
<p>This is my Expert_Summary.cshtml file</p>

我希望从 DriverResult 方法调用此视图,但它正在调用详细视图 Experts.cshtml。两个视图都放在Parts文件夹中。

我一定错过了一些东西,但无法弄清楚它到底是什么。

我对 Orchard 还很陌生,所以任何建议都会对我有很大帮助。

问候

4

1 回答 1

1

让您的驱动程序返回一个包含常规形状和摘要形状的组合形状,并让放置对其进行排序。整个代码中有很多示例,如果您搜索“.Combined”,应该很容易找到。

于 2013-09-01T04:07:58.947 回答