フィールド値をバックエンドから動的に変更しようとしていますが、変更が保存されていないようです。
コード
item
master データベースから取得されます。
using (new EditContext(item))
{
item.Editing.BeginEdit();
try
{
//Value is updated here from "" to Test
item.Fields["Content"].Value = "Test";
}
finally
{
//item.Fields["Content"].Value is "" again.
item.Editing.AcceptChanges();
item.Editing.EndEdit();
}
}
アップデート
@sitecore クライマーが言ったように、コードを使用するように変更しました -
new Sitecore.SecurityModel.SecurityDisabler()
ただし、問題はキャッシングでした。更新された値がコンテンツ エディターに表示されたのは、キャッシュをクリアしてブラウザーを再起動した後でした。
それを回避するために、編集を行う前にキャッシュを無効にし、編集が完了したら再び有効にしました。
CacheManager.Enabled = false;
using (new Sitecore.SecurityModel.SecurityDisabler())
{
item.Editing.BeginEdit();
try
{
item.Fields["Content"].Value = "Test";
}
finally
{
item.Editing.EndEdit();
}
}
CacheManager.Enabled = true;