【发布时间】:2016-01-29 04:58:25
【问题描述】:
我正在尝试将内容项的 HTML 从控制器操作中呈现为字符串。从技术上讲,我只想在没有任何页眉/页脚的情况下获得它的“正文”部分。我想这样做是为了让内容项以我想要的方式呈现一次,然后将其显示为普通的果园页面,或者通过 ajax 请求内容项的 HTML 以将其显示在 JavaScript 应用程序的 div 中。我不想手动渲染 JavaScript 中的所有内容,因为这会重复我已经做过的布局逻辑。我想重用大部分服务器端渲染,以便任何更改都反映在我的普通果园页面和我的 JavaScript 页面中。我一直在挖掘代码并到处搜索并且已经接近但不是一直到那里。
我找到了这些:
How to render shape to string?
在我的控制器中,我有:
var shape = _contentManager.BuildDisplay(contentItem);
使用上述两种方法中的任何一种,我都可以在我的控制器中将该形状呈现为 HTML 字符串。一切都是金色的。我正在获取该页面的正文并在 JS 中使用它。然后,我更改了一个放置文件:
改为:
正文在我的普通 Orchard 页面中移动到我想要的位置(AsideFirst),但从使用上述两种方法检索的 HTML 中消失了。
如果我在 BuildDisplay 调用之后查看 shape.Content.Items,我可以看到 body 的项目不再存在......为什么它没有呈现所有区域?或者,我想一个更具体的问题是为什么 BuildDisplay 方法没有构建完整的形状?有什么方法可以让我完成这项工作吗?
【问题讨论】:
标签: orchardcms