在Sitecore中使用ItemRendering将参数传递到渲染

在Sitecore中使用ItemRendering将参数传递到渲染,sitecore,rendering,Sitecore,Rendering,我有一个调用其数据源子级的呈现。每个子项都在“渲染”字段中附加了一个渲染。 我打电话来 @Html.Sitecore().ItemRendering(item) 这很有效 但是,我想将一些参数传递给孩子的渲染,所以我尝试了以下代码 @Html.Sitecore().ItemRendering(item, new { Parameters = "active=1" }) 但是当我调用@Html.Sitecore().CurrentRendering.parameters[“active”] 所

我有一个调用其数据源子级的呈现。每个子项都在“渲染”字段中附加了一个渲染。 我打电话来

@Html.Sitecore().ItemRendering(item)
这很有效

但是,我想将一些参数传递给孩子的渲染,所以我尝试了以下代码

@Html.Sitecore().ItemRendering(item, new { Parameters = "active=1" })
但是当我调用
@Html.Sitecore().CurrentRendering.parameters[“active”]

所以我尝试了
@Html.Sitecore().ItemRendering(item,new{Active=1})
。我在儿童渲染中再次调用它,但仍然没有运气

是否有方法使用
@Html.Sitecore().ItemRendering()将参数传递给子级

在项目的渲染中,可以访问viewdata,如下所示:

(ViewData["active"] != null && int.Parse(ViewData["active"].ToString()) == 1)

itemrrendering
方法似乎无法正确处理属性(或者正如人们所期望的那样!)

解决方法是使用
@Html.Sitecore().Rendering()
。您可以使用与ItemRendering方法相同的方法来解决以下问题。请注意,您应该设置数据源项(或其模板标准值)的“渲染器”字段,而不是您提到的“渲染”字段:

@Html.Sitecore().Rendering(item["__Renderers"], new {Datasource = item.ID, Message = "Hello World"})
在子渲染中,使用
属性
属性,而不是
参数

@Html.Sitecore().CurrentRendering.Properties["Message"]

尝试在视图中调用
Model.Rendering.Properties[“Active”]
。我必须在ItemRendering中将其作为new{Parameters=“Active=1”}或new{Active=1}传递吗?它应该是
new{Active=1}
,但我在MVC yetGreat catch中没有使用参数静态绑定,只是看到了你的博客文章。
@Html.Sitecore().CurrentRendering.Properties["Message"]