如何在 Orchard 上显示模块到页面的形状结果

How do you display shape result from module to page on orchard

我是模块创建的新手,我创建了一个 mvc 应用程序,它从 orchard 数据库以外的其他来源获取数据。我把它变成了一个模块,在那里我只有一个控制器并查看我想要做的是将视图显示到不同的区域。有没有办法实现这一目标。

当您显示来自控制器的视图时,它会被放入内容区域。如果您想在不同区域显示数据,您很可能想使用 widgets。但是,您可以从 Orchard 的任何地方将任意形状发送到一个区域。这会将名为 MyShape 的形状添加到 A​​sideFirst 区域。

public class MyController : Controller {
    private readonly IWorkContextAccessor _workContextAccessor;
    private readonly IOrchardServices _orchardServices;

    public MyController(IOrchardServices orchardServices, IWorkContextAccessor workContextAccessor) {
        _workContextAccessor = workContextAccessor;
        _orchardServices = orchardServices;
    }

    public ActionResult Random() {
        var shape = _orchardServices.New.MyShape();
        var zone = "AsideFirst";
        var position = "2";

        _workContextAccessor.GetContext().Layout.Zones[zone].Add(shape, position);

        return View("MainView");
    }
}

我真的不知道你的情况是什么,但我想说你最好的选择可能是看看 Orchard Widgets。