.net 将参数传递到Sitecore中的Razor视图渲染

.net 将参数传递到Sitecore中的Razor视图渲染,.net,razor,sitecore,brightcove,.net,Razor,Sitecore,Brightcove,我正在尝试在传递动态视频id的同时渲染brightcove媒体播放器。brightcoveData.id是有效的guid,但我似乎无法正确传递参数,以便渲染理解它。我从该组件中得到一个错误,表示“未选择媒体项” 任何帮助都将不胜感激。谢谢。我认为您不能用这些参数覆盖默认属性 Sitecore将解析这些参数并将它们添加为KeyValuePair对象。您可以通过渲染.参数访问此对象 如果您不想设置自己的数据源和参数,则必须使用Sitecore中的演示详细信息,并在那里设置数据源。好的,与Siteco

我正在尝试在传递动态视频id的同时渲染brightcove媒体播放器。brightcoveData.id是有效的guid,但我似乎无法正确传递参数,以便渲染理解它。我从该组件中得到一个错误,表示“未选择媒体项”


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

我认为您不能用这些参数覆盖默认属性

Sitecore将解析这些参数并将它们添加为
KeyValuePair
对象。您可以通过
渲染.参数
访问此对象


如果您不想设置自己的数据源和参数,则必须使用Sitecore中的演示详细信息,并在那里设置数据源。

好的,与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


这就是最终代码的样子,它工作得很好!谢谢大家

渲染的HTML输出是什么?它看起来正确吗?也试着从视频guid中去掉大括号{}。是的,渲染的HTML输出看起来正确。看来我要通过DS了wrong@xoail-删除花括号没有任何作用遵循此答案尝试使用datasource参数从sitecore传递呈现。我不同意@xoail我查看了SitecoreHelper类,它就是这样做的:
EnumerableExtensions.Each((IEnumerable)TypeHelper.GetProperties(parameters),(Action)(pair=>rendering.Properties[pair.Key]=ObjectExtensions.ValueOrDefault(pair.Value,(Func)(o=>o.ToString()));
在我看来,它将参数作为属性添加到呈现中。我找不到任何覆盖现有属性的内容。作为解决方法,我可能可以添加嵌入媒体(使用现有的DS,我可以修改)到占位符,并仅将其作为条件显示。我可能会尝试这种方法…给Sitecore支持1-2天的时间来获得答案
@Html.Sitecore().Rendering("/sitecore/layout/Renderings/Media Framework/Embed Media", new
                               {
                                   DataSource = brightcoveData.Id,
                                   Parameters = "playerid=E7766078969C3AB892DD158E0E7230B9&height=300&width=400"
                               })