多次渲染sitecore占位符,一页上有两个视图

时间:2015-05-08 20:38:47

标签: sitecore sitecore-mvc sitecore8

我的问题是我们正在创建一个响应式网站,我们将在一个视图上有效地渲染同一项目的两个渲染。当前标记过于复杂,无法在所有设备上进行重构。我们不希望对设备检测进行“自适应”,因为我们的客户认为窗口大小调整是一个有效的用例。

我们希望在这两者中保持相同的演示文稿详细信息,我的解决方案是尝试多次呈现占位符?这可能吗?有更好的解决方案吗?

要明确:

  • 我意识到设备定位的单独渲染是最好的,但不是选项
  • 我们在一次渲染中渲染同一控件的两个版本。

来自评论,为清楚起见

  

我认为问题的症结在于MyComponent和MyMobileComponent都内部有动态内容,我们称之为'MyPlaceHolder'。那么我如何只有1个MyPlaceholder,但是为MyComponent和MyMobileCompenent渲染它。拥有2个独特的占位符是一个可怕的创作流程,可能无法实现。

1 个答案:

答案 0 :(得分:0)

我知道你说这不是一个选项,但我认为最好的响应式实现是使用CSS媒体查询来改变不同大小的外观。

除此之外,我认为响应的第二个最佳建议是使用两个版本的控件进行单个渲染,就像你已经做过的那样。

虽然你可以使用占位符并将两个独立的渲染(MyComponent和MyMobileComponent)添加到同一个占位符,但我不确定这对你有多大帮助。您可能绑定到两者的相同数据源,这不一定是最简单的创作流程。如果您拥有两个的唯一原因是针对不同的分辨率使用不同的标记,我认为您不需要复制Sitecore数据模型来支持这一点。

我看到的一个好处是,通过分离组件,您允许作者将移动版本放在页面上与非移动版本完全不同的位置。然而,这可能会让作者感到困惑而不是有用。

作为旁注,你提到标记“太复杂而不能重构”。这可能表明它确实需要重构。如果您要构建和维护需要支持响应的站点,那么您应该尝试简化设计和标记。重构的成本将低于维持高度复杂的标记结构的持续维护成本(或者重复,取决于将来是否需要替代平板电脑版本)。