所以我在Sitecore Mvc中有一个布局视图,这个视图包含一个控制器渲染,它引入页眉和页脚导航。例如:
@Html.Sitecore().Rendering("/sitecore/layout/renderings/some_rendering")
这指定了我在Sitecore中定义的控制器渲染。这很有效,除非我在体验编辑器中。它没有让我能够选择这个渲染。如果我创建一个占位符,然后通过Sitecore动态地将这些导航元素定义到这个占位符,那么我可以,但这些导航元素存在于此布局的每个页面上,所以我希望它们静态放置而不是使用占位符,但我会仍然喜欢用户能够在体验编辑器中选择导航元素(因此我可以创建自定义命令来与此导航进行交互,例如创建新链接等)。
有没有人有想法可以帮助我实现这个目标?
答案 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解决方案中添加它们:
您无法删除该组件或在页面上移动它(是的,它静态绑定到您的布局上的一个位置),但您可以编辑它' s属性和数据源。
答案 1 :(得分:0)
您可以尝试使用GlassMapper视图并静态继承GlassView中的视图。 然后,您将能够使用可编辑方法来渲染该字段。
但您需要考虑的是,您无法从页面编辑器或内容编辑器中为组件设置数据源。
您可以使用标准MVC RenderPartial,而不是通过Rendering方法注入渲染。
我在其中一个项目上使用过这种方法,但是它起作用了。