小编Bal*_*aji的帖子

无法更新JToken值

我正在尝试更新JToken的值,但它的引用没有得到更新.

JSON字符串:

    {
  "Title": "master",
  "Presentation": [
    {      
      "Component": {
        "Content": {
          "Title": "Set New Title",
        }
      }
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

用法如下

JObject jo = JObject.Parse(File.ReadAllText(file.json));
foreach (var token in jo.SelectTokens("$..Component.Content").Children())
            {
                JProperty prop = token.ToObject<JProperty>();
                prop.Value = "New Title";
            }
string jsonText = JsonConvert.SerializeObject(jo, Formatting.Indented);
Run Code Online (Sandbox Code Playgroud)

在这个例子中,我正在尝试更新Title属性的值.它在foreach中得到更新,意味着局部变量正在更新,但更改未反映在主要作业中.

如果我做错了什么,有人可以帮助我吗?

c# json.net c#-4.0

10
推荐指数
1
解决办法
1万
查看次数

获取组件的根发布

让我们假设这个问题有以下出版物.

20内容 - > tcm:0-20-1

...

...

...

70网 - > tcm:0-121-1

我在(20内容)出版物下创建了一个组件,我将从其中一个子出版物(70 Web)发布此组件.我正在使用Dreamweaver模板编写UI,我正在从DWT调用C#自定义函数.发布时,此组件在组件表示中将被称为121-432.有没有办法获得组件创建位置的根发布?那是我应该得到20-432,而不是得到121-432.

我尝试过Component .GetBluePrintChain(),它返回一个包含所有蓝图层次结构的列表.我可以从这个列表中获得第一个项目,以获得实际创建它的出版物的这个组件.

由于我必须在很多地方调用此方法,我只是想检查是否有其他直接/更好的方法来完成此操作.

谁有人建议?

tridion tridion-2011

5
推荐指数
1
解决办法
499
查看次数

Tridion部署者删除本地化/父文件

在Tridion中发布页面时,我们面临着奇怪的行为.

我们在050出版物中有英文页面,同一页面在060出版物中本地化.我们在英文出版物中采用样本页面帐户(tcm:120-1234),在西班牙语出版物中使用相同的本地化页面(tcm:125-1234).

当我们发布英文页面,帐户时,它会成功发布,但本地部署者会删除其西班牙语页面(tcm:125-1234).当我们发布西班牙语页面时,它会删除其英文页面(tcm:120-1234).

我们已经验证了部署方,并确认其他文件已从服务器本身中删除.

请参阅下面的部署者日志,以指示删除该页面.但我们不确定为什么它会删除其他出版物文件.是因为相同的页面项ID?我认为它不应该,因为它是本地化的.

DEBUG FSEntityManager - 删除事务tcm中的pagemeta/pageurl/business/accounts.content:0-754-66560.

我们从这个日志中了解到这是从部署者那里得到的,但不确定如何以及为什么要求它.我们正在分析FSEntityManager类正在做什么.

谁可以帮我这个事?

tridion tridion-content-delivery tridion-2011

3
推荐指数
1
解决办法
256
查看次数