多次呈现sitecore占位符,在一个页面上呈现两个视图

多次呈现sitecore占位符,在一个页面上呈现两个视图,sitecore,sitecore-mvc,sitecore8,Sitecore,Sitecore Mvc,Sitecore8,我的问题是,我们正在创建一个响应站点,我们将在一个视图上有效地渲染同一项目的两个渲染。当前标记太复杂,无法重构,因此无法在所有设备上通用。我们不想对设备检测进行“自适应”,因为我们的客户认为窗口大小调整是一个有效的用例 我们希望在这两个方面保持相同的演示细节,我的解决方案是尝试多次渲染占位符?这可能吗?有更好的解决办法吗 要明确的是: 我意识到,以设备为目标的单独渲染是最好的,但不是一个选项 我们正在一次渲染中渲染同一控件的两个版本 从评论中,为了清楚起见 我认为问题的症结在于MyCompo

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

我们希望在这两个方面保持相同的演示细节,我的解决方案是尝试多次渲染占位符?这可能吗?有更好的解决办法吗

要明确的是:

  • 我意识到,以设备为目标的单独渲染是最好的,但不是一个选项
  • 我们正在一次渲染中渲染同一控件的两个版本
从评论中,为了清楚起见


我认为问题的症结在于MyComponent和MyMobileComponent内部都有动态内容,我们称之为“MyPlaceHolder”。那么,我如何只有1个MyPlaceholder,但同时为MyComponent和MyMobileComponent呈现它呢。拥有两个唯一的占位符是一个可怕的创作流程,可能无法实现


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

除此之外,我认为对于responsive,第二个最好的建议是使用两个版本的控件进行单个渲染,就像您已经做的那样

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

我看到的一个好处是,通过分离组件,作者可以将移动版本放在与非移动版本完全不同的页面位置。然而,对于作者来说,这可能更令人困惑,而不是帮助


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

我认为问题的关键在于MyComponent和MyMobileComponent内部都有动态内容,让我们称之为“我的占位符”。那么,我如何只有1个MyPlaceholder,但同时为MyComponent和MyMobileComponent呈现它呢。拥有2个唯一的占位符是一个可怕的创作流程,可能无法实现。您可以使用动态占位符作为Sitecore的扩展来支持此方案,动态占位符可以在线以多种格式找到。然而,您遇到的问题更多地是由于方形桩/圆孔的情况。如果您在同一页上有相同的占位符,并且具有相同的数据。。。这应该是一个组件。是的,它是一个动态占位符。但是,如何在不在页面编辑器中设置两次的情况下使用该呈现/数据源组合两次呢?我真的不知道我很好地表达了我需要做的事情。sitecore最棒的一点是,我没有遇到过很多sitecore无法修剪成圆形的“正方形”。也许添加到问题中的一些示例代码将有助于澄清?我也不确定我是否理解了:)