2016-08-16 3 views
0

とにかくNameValueListフィールドを更新しますか?Sitecore Update NameValueList Programmatically

キーを見つけて、その値をプログラムで更新したいと考えています。 これは私が試したものですが、動作しません。

enter image description here

Sitecore.Data.Fields.NameValueListField data = Model.Rendering.Item.Fields["Name Value List"]; 
System.Collections.Specialized.NameValueCollection nameValueCollection = data.NameValues; 

using (new Sitecore.SecurityModel.SecurityDisabler()) 
{ 
    Model.Rendering.Item.Editing.BeginEdit(); 
    nameValueCollection.Set("123456", "New Value"); 
    Model.Rendering.Item.Editing.EndEdit(); 
} 

...

答えて

0

はdotPeekでNameValueListFieldを見ると、NameValuesプロパティは、基礎となるデータを参照するのではなく、解析された値を含むオブジェクトを渡すことはありませんしてくださいすべてのヘルプ。 NameValueCollectionに変更を加えた場合は、フィールドに戻す必要があります。だからこのような何か:

Sitecore.Data.Fields.NameValueListField data = Model.Rendering.Item.Fields["Name Value List"]; 
System.Collections.Specialized.NameValueCollection nameValueCollection = data.NameValues; 

using (new Sitecore.SecurityModel.SecurityDisabler()) 
{ 
    Model.Rendering.Item.Editing.BeginEdit(); 
    nameValueCollection.Set("123456", "New Value"); 
    data.NameValues = nameValueCollection; 
    Model.Rendering.Item.Editing.EndEdit(); 
} 

無関係:あなたはSitecore MVCレンダリングの値を編集しているようです。心の中でカップルの事をしてください:

  • デフォルトでは、これは、ウェブデータベースとなり、値は公開
  • サイトコアデータベースへの書き込みは公的には非常に遅く、通常は悪い考えであるに上書きされますトラフィック負荷がわずかであってもウェブページが向いている可能性があります。
+0

もう一度もう一度チェックして動作します。ポーズされたコードは、複雑さを避けるためのサンプルコードです。私はこのコードを本番環境に追加しているわけではありません。 – Jay

関連する問題