Orchardcms 如何使用Orchard CMS模板模块

Orchardcms 如何使用Orchard CMS模板模块,orchardcms,Orchardcms,Orchard CMS中有一个模块允许在仪表板中编辑模板,但不清楚如何正确利用输出。在MVC模块控制器中访问模板、向模板传递模型,然后在View cshtml文件中呈现模板的正确方法是什么?您可以使用shapefactory构建任何形状: public MyController(IShapeFactory shapeFactory) { Shape = shapeFactory; } public dynamic Shape { get; set; } public ActionRe

Orchard CMS中有一个模块允许在仪表板中编辑模板,但不清楚如何正确利用输出。在MVC模块控制器中访问模板、向模板传递模型,然后在View cshtml文件中呈现模板的正确方法是什么?

您可以使用shapefactory构建任何形状:

public MyController(IShapeFactory shapeFactory) {
    Shape = shapeFactory;
}

public dynamic Shape { get; set; }

public ActionResult Index() {
    var someModel = new SomeModel();

    // You can build your shape here:
    var shape = Shape.TheTemplateShapeName(SomeData: someModel.SomeProperty);

    // or: Shape.New("TheTemplateShapeName").SomeData(someData); 
    // you can just chain on the dynamic shape

    var viewModel = Shape
        .ViewModel() // simple orchard method to build a viewmodel with chaining
        .MyShape(shape)
        .SomethingElse("Some string");

    return View(viewModel);
}
然后在MyController/Index.cshtml中:

<h1>@Model.SomethingElse</h1>
@Display(Model.MyShape)
@Model.SomethingElse
@显示(Model.MyShape)

如果模板位于数据库中而不是视图文件夹中,ShapeFactory是否足够智能,可以找到该模板?我正在使用“模板”模块。如何使用Shape Factory来表示呈现页面?不,它不会检查db,您指的是“模板”模块中的哪个模块?