Sitecore:获取父渲染参数

时间:2014-11-22 18:21:22

标签: sitecore sitecore-mvc

在Sitecore MVC中考虑这个场景:我有一个名为Rendering A的渲染,它是一个内置占位符的DIV(占位符-a)。然后我有一个名为Rendering B的第二个渲染,它放在占位符-a中。

我的渲染B代码是否可以读取渲染A的渲染参数?

3 个答案:

答案 0 :(得分:0)

由于为占位符中的每个渲染分别调用 RenderRendering 管道,因此无法开箱即用。

我是通过overriding placeholder control完成的,并允许通过占位符传递其他参数。

e.g。

@Html.SitecoreExtended().Placeholder("extendedForRendering", new {ExampleRouteValue1 = "Sitecore MVC Placeholder with rendering view"})

在这种情况下,我能够通过占位符从父视图向子视图传输所需的参数。

答案 1 :(得分:0)

正如Anton所说,你无法获得父渲染但是你可以获得当前页面上所有渲染的列表,如下所示:

var pageContext = Sitecore.Mvc.Presentation.PageContext.CurrentOrNull;
if(pageContent!=null)
    var renderings = pageContext.PageDefinition.Renderings;

获得渲染后,您可以查找占位符值,参数等。 另一种可能性,不确定这是否适合您,是从当前渲染上下文中,您始终可以获得子渲染。希望这有帮助。

答案 2 :(得分:0)

看作渲染首先执行代码,您是否可以在会话/缓存中添加渲染参数?然后在渲染B中访问它?