Orchardcms Orchard CMS-如何获取当前显示类型

Orchardcms Orchard CMS-如何获取当前显示类型,orchardcms,Orchardcms,我在Views/EditorTemplates/Parts/folder下有一个自定义ContentPart和一个编辑器视图。我正在尝试找出在placement.info文件中使用的适当的DisplayType值,以使此视图生效。如果我使用这样的东西,我会看到它出现: <Match ContentType="MyType"> <Place Parts_MyPart_Edit="Content"/> </Match> 但我希望能够更明确地针对它,比如:

我在Views/EditorTemplates/Parts/folder下有一个自定义ContentPart和一个编辑器视图。我正在尝试找出在placement.info文件中使用的适当的DisplayType值,以使此视图生效。如果我使用这样的东西,我会看到它出现:

<Match ContentType="MyType">
  <Place Parts_MyPart_Edit="Content"/>
</Match>

但我希望能够更明确地针对它,比如:

<Match ContentType="MyType">
  <Match DisplayType="????">-->
    <Place Parts_MyPart_Edit="Content"/>
  </Match>
</Match>

-->
我尝试过“详细”、“摘要”和“摘要管理”都没有成功

因此,有两个问题:

  • 是否有“DisplayType”值的标准列表
  • 有没有办法通过断点或其他方式在运行时发现“DisplayType”是什么,以便我可以在placement.info中进一步限制它
  • 编辑


    再想一想,当使用编辑器模板时,是否会涉及到“DisplayType”?我刚刚意识到Parts\u MyPart\u Edit可能有足够的限制,因为它已经针对了\u Edit。这是对的,还是还有一个选项可以匹配“DisplayType”,可以用于编辑器模板?

    1:不知道关于这个主题的正确文档在哪里,但这是正确的语法:
    详细信息和摘要管理员也是有效的显示类型

    除此之外,您还可以定义自己的显示类型:

    var shape = _contentManager.BuildDisplay(item, "CustomDisplayType");
    
    然后您的形状/视图必须命名为
    YourShape.CustomDisplayType.cshtml
    。 然后,您可以在placement.info中使用displaytype:

    <Match DisplayType="CustomDisplayType">
        <Place Parts_YourPart="Content:1" />
    </Match>
    
    
    
    2:使用“形状跟踪器”模块。启用后,您可以在前端找到使用的显示类型


    您可能在
    将此作为答案发布时犯了错误,因为我的声誉还不足以添加评论:)

    如果您对在管理页面上使用Shape Tracer感兴趣,请在Orchard.DesignerTools模块中打开ShapeTracingFactory.cs文件,并在IsActivable方法中注释掉以下行:

    if(AdminFilter.IsApplied(newrequestcontext(\u workContext.HttpContext,new RouteData()))
    返回false


    我发现这对于准确了解内容创作任务期间发生的事情非常有用

    只是为了澄清,我在一个编辑器模板中,因此不涉及驱动程序显示方法,displayType似乎不是编辑器方法的参数。然后,您可以使用形状跟踪模块。当跟踪一个形状时,它也会显示它的显示类型。它会显示,但只在“前端”站点上显示。例如,对于自定义表单,您并没有说视图文件夹在哪里。它是在主题中还是在模块中?因为它不能从主题开始工作。对不起,它在我的模块中。同样要澄清的是,如果我不使用元素对模板进行限制,那么它可以正常工作。我只是想进一步了解如何将编辑器模板的显示类型作为目标。好吧,不,你不应该在这里使用匹配项:形状的名称已经不同了。好吧,这就是我的结论。就我的理解而言,在加载零件编辑器时,是否有“DisplayType”在起作用?很奇怪,因为驱动程序编辑器方法没有displayType参数。