Problema que muestra la vista sumaria de una parte de contenido personalizado en Orchard CMS utilizando colocación.info

StackOverflow https://stackoverflow.com/questions/7812911

Pregunta

Creé una parte personalizada llamada PresentationPart y su colocación.

En la colocación.info tengo

<Match ContentType="Presentation">
    <Match DisplayType="Summary">
        <Place Parts_PresentationPart_Summary="Content:after"/>
    </Match>
    <Match DisplayType="Detail">
        <Place Parts_PresentationPart="Content:after"/>
    </Match>
</Match>

El diseño de la carpeta es

Views ->
    EditorTemplates ->
        Parts ->
            Parts_PresentationPart.cshtml   
    Parts ->
         Parts_PresentationPart.cshtml
         Parts_PresentationPart.Summary.cshtml

La vista Parts_PresentationPart_Summary nunca se usa (intentando tener una visualización de resumen en la vista de lista).

Si modifico la colocación. El área de resumen de la presentación de INFO será

<Match DisplayType="Summary">
    <Place Parts_PresentationPart="Content:before"/>
    <Place Parts_PresentationPart_Summary="Content:after"/>
</Match>

La vista normal se mostrará.

¿Qué se requiere para que se muestre la vista resumida? ¿O hay algo que me estoy saltando por completo?

Editar: me había omitido el CombinedResult en el controlador de pantalla.

Original:

protected override DriverResult Display(PresentationPart part, string displayType, dynamic shapeHelper)
{
    return ContentShape("Parts_PresentationPart",() => shapeHelper.Parts_PresentationPart(ContentItem: part.ContentItem, Name: part.Name)));
}

Entonces, ¿lo que necesitaré es algo como esto?

var driverResults = new List<DriverResult>();
driverResults.Add(ContentShape("Parts_PresentationPart", () => shapeHelper.Parts_PresentationPart(ContentItem: part.ContentItem, Name: part.Name)));
driverResults.Add(ContentShape("Parts_PresentationPart_Summary",() => shapeHelper.Parts_PresentationPart(ContentItem: part.ContentItem, Name: part.Name)));
return new CombinedResult(driverResults);
¿Fue útil?

Solución

Trate las formas "normales" y "resumidas" como otras totalmente separadas. Dicho esto, simplemente no debe mostrar el "normal" al mostrar el resumen (y viceversa):

<Match DisplayType="Summary">
    <Place Parts_PresentationPart="-"/>
    <Place Parts_PresentationPart_Summary="Content:after"/>
</Match>

No has publicado el Método de visualización del controlador, así que no estoy seguro de lo que estás devolviendo ...

Para que este escenario funcione, debe devolver el CombinedResult con las formas normales y "resumidas" en el interior. El administrador de pantallas podría decidir cuál mostrar en función de los datos almacenados en la colocación.info.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top