在视图中渲染形状

Render shape in a view

我已经用 ProductPart 创建了 ContentType Product,但是由于产品 html 相当复杂,我决定使用一个视图 [=41= .cshtml 并手动渲染所有零件信息,而不是使用形状。但我仍然需要为价格渲染一个形状,因为我需要通过服务对其进行格式化,我想在 ProductPart driver.

中进行

我尝试在此视图中定义新的 zone 并使用 placement.info 放置形状。它所做的只是渲染形状的类型名称而不是 html.

Orchard.DisplayManagement.Shapes.Shape

我什至可以使用这种方法来插入形状吗?或者我应该选择不同的方法?

Driver:

protected override DriverResult Display(ProductPart part, string displayType, dynamic shapeHelper)
{
    return ContentShape("Parts_Product_Price",
    () => shapeHelper.Parts_Product_Price(
        ContentPart: part,
        ContentItem: part.ContentItem));
}

Content-Product.cshtml:

@Model.PriceZone()

Placement.info:

<Place Parts_Product_Price="PriceZone:1"/>

在您的 Content-Product.cshtml 视图中您想要这样:

@Display(Model.PriceZone)