将参数传递给Sitecore中的Razor View渲染

时间:2014-12-15 21:31:15

标签: .net razor sitecore brightcove

我试图在传递动态视频ID的同时渲染出brightcove媒体播放器。 brightcoveData.Id是一个有效的guid,但我似乎无法正确传递参数,以便Rendering理解它。我从这个组件中得到一个错误,说"未选择媒体项。"

var embedMedia = new System.Collections.Specialized.NameValueCollection();
            embedMedia.Add("playerId", "E7766078969C3AB892DD158E0E7230B9");
            embedMedia.Add("width", "400");
            embedMedia.Add("height", "300");

            @Html.Sitecore().Rendering("/sitecore/layout/Renderings/Media Framework/Embed Media", new
                               {
                                   DataSource = brightcoveData.Id,
                                   Parameters = embedMedia
                               })

任何帮助将不胜感激。感谢。

2 个答案:

答案 0 :(得分:8)

好的,在与Sitecore支持人员交谈后,我得到了答案:

@Html.Sitecore().Rendering("/sitecore/layout/Renderings/Media Framework/Embed Media", new
                               {
                                   DataSource = brightcoveData.Id,
                                   Parameters = "playerid=E7766078969C3AB892DD158E0E7230B9&height=300&width=400"
                               })

brightcoveData.Id只是一个guid字符串=" {XXXX -...- etc}"。 playerid是您正在使用的播放器的Sitecore项目ID。

这是最终代码的样子,效果很好!谢谢大家

答案 1 :(得分:0)

我不认为您可以使用这些参数覆盖默认属性。

Sitecore将解析这些参数并将其添加为KeyValuePair<string, object>对象。您可以通过Rendering.Parameters

访问此对象

如果您不想设置自己的数据源和参数,则必须使用Sitecore中的演示详情并设置数据源< / strong>那里。