我看过以下与我相似的帖子。 Issue displaying the summary view of a custom content part in Orchard CMS using Placement.info
但是当我将我的代码与解决方案进行比较时,我找不到任何不同的东西。
这就是我想要实现的目标:
我有两个自定义内容部件构建了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方法调用此View,但它调用详细视图Experts.cshtml。两个视图都放在Parts
文件夹中。
我必须遗漏一些东西,但无法弄清楚到底是什么。
我仍然是Orchard的新手,所以任何建议都对我有很大的帮助。
此致
答案 0 :(得分:1)
让您的驱动程序返回带有常规形状和摘要形状的组合形状,然后让放置对其进行排序。整个代码中有很多例子,如果你搜索“.Combined”,应该很容易找到。