如何通过体验编辑器(Sitecore MVC)使静态绑定渲染可编辑

时间:2016-05-09 01:14:35

标签: sitecore sitecore8 sitecore-mvc

所以我在Sitecore Mvc中有一个布局视图,这个视图包含一个控制器渲染,它引入页眉和页脚导航。例如:

@Html.Sitecore().Rendering("/sitecore/layout/renderings/some_rendering")

这指定了我在Sitecore中定义的控制器渲染。这很有效,除非我在体验编辑器中。它没有让我能够选择这个渲染。如果我创建一个占位符,然后通过Sitecore动态地将这些导航元素定义到这个占位符,那么我可以,但这些导航元素存在于此布局的每个页面上,所以我希望它们静态放置而不是使用占位符,但我会仍然喜欢用户能够在体验编辑器中选择导航元素(因此我可以创建自定义命令来与此导航进行交互,例如创建新链接等)。

有没有人有想法可以帮助我实现这个目标?

2 个答案:

答案 0 :(得分:1)

使用Edit Frame为此创建Custom Edit Frame Button,以便为导航添加新元素等操作。

请记住将Datarsource ID或Path作为第二个参数传递给Html.Sitecore().Rendering()方法:

@Html.Sitecore().Rendering("/sitecore/layout/renderings/some_rendering", new { DataSource = "{some-id-or-path}" })

以下是一组博客文章,可帮助您了解Edit Frames如何工作以及如何在Sitecore MVC解决方案中添加它们:

  1. https://visionsincode.wordpress.com/2015/01/08/how-to-use-editframe-in-sitecore-mvc/
  2. https://www.cmsbestpractices.com/how-to-properly-use-sitecore-edit-frames/
  3. https://briancaos.wordpress.com/2011/11/28/using-sitecore-editframe-in-pageedit/
  4. 您无法删除该组件或在页面上移动它(是的,它静态绑定到您的布局上的一个位置),但您可以编辑它' s属性和数据源。

答案 1 :(得分:0)

您可以尝试使用GlassMapper视图并静态继承GlassView中的视图。 然后,您将能够使用可编辑方法来渲染该字段。

但您需要考虑的是,您无法从页面编辑器或内容编辑器中为组件设置数据源。

您可以使用标准MVC RenderPartial,而不是通过Rendering方法注入渲染。

我在其中一个项目上使用过这种方法,但是它起作用了。