如何通过Experience Editor(Sitecore MVC)使静态绑定渲染可编辑

如何通过Experience Editor(Sitecore MVC)使静态绑定渲染可编辑,sitecore,sitecore8,sitecore-mvc,Sitecore,Sitecore8,Sitecore Mvc,因此,我在Sitecore Mvc中有一个布局视图,该视图包含一个控制器渲染,该控制器渲染引入了页眉和页脚导航。例如: @Html.Sitecore().Rendering("/sitecore/layout/renderings/some_rendering") 这指定我在Sitecore中定义的控制器呈现。这非常有效,除非我在体验编辑器中。它不能让我选择这个渲染。如果我创建一个占位符,然后通过Sitecore将这些导航元素动态定义到此占位符,那么我可以,但是这些导航元素存在于此布局的每个页

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

@Html.Sitecore().Rendering("/sitecore/layout/renderings/some_rendering")
这指定我在Sitecore中定义的控制器呈现。这非常有效,除非我在体验编辑器中。它不能让我选择这个渲染。如果我创建一个占位符,然后通过Sitecore将这些导航元素动态定义到此占位符,那么我可以,但是这些导航元素存在于此布局的每个页面上,因此我希望它们静态放置,而不是使用占位符,但我仍然希望用户能够在体验编辑器中选择导航元素(这样我就可以创建自定义命令来与此导航交互,例如创建新链接等)


有没有人有办法帮我实现这一点?

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

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

您应该能够使用standart MVC RenderPartial,而不是通过渲染方法注入渲染


我在我参与的一个项目中使用了这种方法,并且效果很好。

使用
编辑框架
,并创建
自定义编辑框架按钮
,用于向导航添加新元素等操作

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

@Html.Sitecore().Rendering("/sitecore/layout/renderings/some_rendering", new { DataSource = "{some-id-or-path}" })
以下是一组博客文章,可以帮助您了解
编辑框架如何工作,以及如何在Sitecore MVC解决方案中添加框架:

  • 您将无法删除该组件或在页面中移动它(是的,它静态绑定到布局中的一个位置),但您将能够编辑它的属性和数据源