我看过下面的帖子,看起来和我的很相似。 使用 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 还很陌生,所以任何建议都会对我有很大帮助。
问候