我正在尝试更新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中得到更新,意味着局部变量正在更新,但更改未反映在主要作业中.
如果我做错了什么,有人可以帮助我吗?
让我们假设这个问题有以下出版物.
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中发布页面时,我们面临着奇怪的行为.
我们在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类正在做什么.
谁可以帮我这个事?