Model view controller Sitecore以编程方式更新NameValueList

Model view controller Sitecore以编程方式更新NameValueList,model-view-controller,sitecore,Model View Controller,Sitecore,是否仍要更新NameValueList字段 我想找到一个键并以编程方式更新它的值。 这是我试过的,但不起作用 Sitecore.Data.Fields.NameValueListField Data=Model.Rendering.Item.Fields[“名称值列表”]; System.Collections.Specialized.NameValueCollection NameValueCollection=data.NameValues; 使用(新Sitecore.SecurityMo

是否仍要更新NameValueList字段

我想找到一个键并以编程方式更新它的值。 这是我试过的,但不起作用

Sitecore.Data.Fields.NameValueListField Data=Model.Rendering.Item.Fields[“名称值列表”];
System.Collections.Specialized.NameValueCollection NameValueCollection=data.NameValues;
使用(新Sitecore.SecurityModel.SecurityDisabler())
{
Model.Rendering.Item.Editing.BeginEdit();
nameValueCollection.Set(“123456”,“新值”);
Model.Rendering.Item.Editing.EndEdit();
}

请提供任何帮助…

查看dotPeek中的
NameValueListField
NameValues
属性不会传递对基础数据的引用,而是传递包含解析值的对象。如果更改了
NameValueCollection
,则需要将其设置回字段。比如说:

Sitecore.Data.Fields.NameValueListField Data=Model.Rendering.Item.Fields[“名称值列表”];
System.Collections.Specialized.NameValueCollection NameValueCollection=data.NameValues;
使用(新Sitecore.SecurityModel.SecurityDisabler())
{
Model.Rendering.Item.Editing.BeginEdit();
nameValueCollection.Set(“123456”,“新值”);
data.NameValues=nameValueCollection;
Model.Rendering.Item.Editing.EndEdit();
}
无关:您似乎正在编辑Sitecore MVC呈现中的值。请记住以下几点:

  • 默认情况下,这将是web数据库,发布时将覆盖这些值
  • 写入Sitecore数据库的速度非常慢,而且在面向公众的网页中,这通常是一个坏主意,因为这些网页的流量甚至很小

哦,我又检查了一遍,结果还是正常的。所提出的代码是防止复杂性的示例代码。我不确定在生产中添加此代码。