2sxc内容类型添加下拉字段后触发500错误求助
2sxc内容类型序列化500错误排查与修复
问题现象
某2sxc内容类型PresSetText添加下拉字段后,管理后台点击该内容类型或内容项的「字段」选项时触发500错误,报错信息:
'ObjectContent`1'类型无法序列化内容类型为‘application/json; charset=utf-8’的响应体
但导出该内容类型或通过API调用能正常获取XML/JSON数据,将其导入其他2sxc环境也会触发相同错误。
错误原因
查看提供的内容类型定义JSON,发现Kleur2字段的@string-dropdown元数据中存在JSON语法错误:
在ID为10689的元数据项里,Separator属性值写成了"Separator":{"nl-nl":"","}},多了一个冗余的逗号和闭合括号,导致JSON格式无效,后台序列化响应体时失败。
修复步骤
- 导出该内容类型的JSON配置文件
- 找到
Kleur2字段的Metadata数组中ID为10689的条目,修正Separator的定义:
错误代码:
修正为:"Separator":{"nl-nl":"","}}"Separator":{"nl-nl":""} - 保存修改后的JSON文件,重新导入到2sxc环境
- 若能临时绕过错误进入后台编辑界面,也可直接编辑
Kleur2字段的下拉设置,重置分隔符配置
修正后的关键代码片段
{"Id":10689,"Version":3,"Guid":"1c62365c-1d5a-4cd9-a5f4-9f9736268500","Type":{"Name":"@string-dropdown","Id":"@string-dropdown"},"Attributes":{"String":{"DropdownValues":{"nl-nl":"#1:turquoise\n#2:aarde"},"DropdownValuesFormat":{"nl-nl":"value-label"},"Separator":{"nl-nl":""}},"Boolean":{"AllowMultiValue":{"nl-nl":false},"EnableTextEntry":{"nl-nl":false}}},"Owner":"dnn:userid=1"}
内容的提问来源于stack exchange,提问作者MBouwman
相关产品推荐
相关产品推荐

