【发布时间】:2011-10-01 15:27:50
【问题描述】:
我有一个客户想要为他的网站设计一个单页设计,其中每个“页面”的内容在用户浏览网站时使用 javascript 显示/隐藏。
我不确定使用 Orchard 解决此问题的最佳方法。一种选择是将内容全部放在单个页面内容项上,但随后您将失去使用 Orchard 导航功能的能力,并且无法让客户从页面的角度考虑管理。
是否有人对如何在 Orchard CMS 中进行最佳设置有想法或经验?
这是我根据 Bertrand 的建议使用的解决方案:
public ActionResult Display(int id)
{
var contentItem = _contentManager.Get(id, VersionOptions.Published);
dynamic model = _contentManager.BuildDisplay(contentItem);
var ctx = _workContextAccessor.GetContext();
ctx.Layout.Metadata.Alternates.Add("Layout_Null");
return new ShapeResult(this, model);
}
我创建了一个新模块,其中包含一个包含上述操作方法的控制器。 action 方法采用内容部分 id 的参数。 _contentManager 和 _workContextAccessor 对象被注入到控制器中。 Layout.Null.cshtml 视图的创建与 Bertrand 建议的完全一样。
【问题讨论】:
-
这是一个非常奇怪的设计,似乎与 SEO 和所有已知的可用性背道而驰。有什么理由这样做?
-
看起来您正在开发一个移动应用程序,对吧? jQuery 移动?
-
@BertrandLeRoy:我不一定不同意。这是客户想要的(特别是他们希望我实现这个模板:udfrance.com/dev/STUDIO8/index_black.html)。该网站的内容非常简单,搜索引擎优化不是主要目的。
-
@pszmyd:不是 jquery 移动应用,而是类似的用例。
-
没有返回 _content manager 的结果。鉴于 - 据我所知 - 可以使用内容管理器检索所有管理数据,因此暴露了一个安全漏洞?只需尝试 id 的各种值,直到您取回用户帐户信息或其他一些特权数据。
标签: orchardcms