我是模块创建的新手,我创建了一个mvc应用程序,它从除了果园数据库之外的其他来源获取数据。我把它变成了一个模块,我只有一个控制器,并查看我要做的是将视图显示到不同的区域。有没有办法实现这一目标。
答案 0 :(得分:1)
当您从控制器显示视图时,它会被隐藏到内容区域中。如果要在不同区域中显示数据,您很可能希望使用widgets。但是,您可以从Orchard的任何位置向区域发送任意形状。这会将名为 MyShape 的形状添加到 AsideFirst 区域。
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。