如何在没有内容项的情况下呈现 ShapeTemplate?

How to render a ShapeTemplate without a contentitem?

我是 Orchard 的新手,我的大脑因为 MVCSHD 模型而燃烧 (模型视图控制器形状处理程序驱动程序)

来自果园文档:

Shapes are dynamic data models that use shape templates to make the data visible to the user in the way you want. Shape templates are fragments of markup for rendering shapes. Examples of shapes include menus, menu items, content items, documents, and messages.

我想显示一个形状模板并向视图提供一个不是 ContentPart 且没有 ContentItem 的模型。

因为我想在控制器中创建这个模型(或者如果我最终让它工作的话,稍后在驱动程序中创建)。 模型的内容是动态创建的。

在控制器中这不起作用:

        TestThingie testThingie = new TestThingie (5);
        _orchardServices.ContentManager.BuildDisplay(testThingie,"Summary");

因为 testTingie 没有 contentItem... 还有其他方法可以用模型显示 shapeTemplate 吗?我在这里错过了什么?

是我一个人,还是有点不可能从文档中获得关于所有这些东西将如何运作的更多信息?

BuildDisplay 方法用于制作给定内容项的显示形状。您没有内容项,因此不能使用该方法。

然而你可以做的是使用动态 Display:

public ActionResult MyAction() {
    TestThingie testThingie = new TestThingie(5);

    return View(myShape);
}

然后在你的 Views/MyControllerName/MyAction.cshtml:

@Display.MyShape(Thingie: Model.TestThingie)

在你的MyShape.cshtml中:

@{
    TestThingie thingie = Model.Thingie;
}