Orchardcms 我可以在控制器方法中将所有区域呈现为HTML字符串吗

Orchardcms 我可以在控制器方法中将所有区域呈现为HTML字符串吗,orchardcms,Orchardcms,我正在尝试从控制器操作中将内容项的HTML呈现为字符串。从技术上讲,我只想得到它的“主体”部分,而不需要任何页眉/页脚的东西。我想这样做,这样我就可以得到一个内容项,以我想要的方式呈现一次,然后将其显示为一个普通的orchard页面,或者通过ajax请求内容项的HTML以在JavaScript应用程序中的div中显示它。我不想手动呈现JavaScript中的所有内容,因为这会复制我已经完成的布局逻辑。我想重新使用服务器端渲染的大部分,这样任何更改都会反映在我的普通orchard页面和JavaSc

我正在尝试从控制器操作中将内容项的HTML呈现为字符串。从技术上讲,我只想得到它的“主体”部分,而不需要任何页眉/页脚的东西。我想这样做,这样我就可以得到一个内容项,以我想要的方式呈现一次,然后将其显示为一个普通的orchard页面,或者通过ajax请求内容项的HTML以在JavaScript应用程序中的div中显示它。我不想手动呈现JavaScript中的所有内容,因为这会复制我已经完成的布局逻辑。我想重新使用服务器端渲染的大部分,这样任何更改都会反映在我的普通orchard页面和JavaScript页面中。我一直在深入研究代码,到处搜索,已经接近了,但不是所有的路

我发现:

在我的控制器中,我有:

var shape=\u contentManager.BuildDisplay(contentItem)

使用上述两种方法中的任何一种,我都可以在控制器中将该形状呈现为HTML字符串。一切都是金色的。我得到了那个页面的主体,并在JS中使用它。然后,我更改了一个放置文件:

更改为:

正文在我的普通Orchard页面中移动到了我想要的位置(AsideFirst),但在使用上述两种方法检索的HTML中消失了


如果我在BuildDisplay调用之后查看shape.Content.Items,我可以看到body的项不再存在。。。为什么不渲染所有区域?或者,我想一个更具体的问题是为什么BuildDisplay方法不能构建完整的形状?有什么办法可以让这一切顺利进行吗?

我尝试了无数种不同的方法,最终成功了。我还不确定我是否完全理解它,但我认为问题在于我使用了shape.Content,并且我已经将内容移出了内容区。也许当我看到BuildDisplay方法返回的内容时,我并没有看到一些新创建的区域,它们确实有我认为缺少的东西。显然,我需要学习更多关于分区和形状的知识。。。无论如何,我有一个新的区域称为“MainInfo”,现在我在一个放置文件中创建。我在BuildDisplay返回的主形状上获得了mainfo属性,并将shape.mainfo传递给视图渲染代码,现在一切似乎都运行良好