Sitecore页面编辑器中保存返回错误

gil*_*l23 5 c# json sitecore sitecore-mvc sitecore8

在页面编辑器中保存页面时出现错误.不知何故,当我从演示文稿>详细信息编辑页面并在页面编辑器中显示它时工作正常..错误日志在下面这里..

ERROR After parsing a value an unexpected character was encountered: {. Path 'scLayout', line 38, position 85.  Exception: Newtonsoft.Json.JsonReaderException
Message: After parsing a value an unexpected character was encountered: {. Path 'scLayout', line 38, position 85.  Source: Newtonsoft.Json 
    at Newtonsoft.Json.JsonTextReader.ParsePostValue()
    at Newtonsoft.Json.JsonTextReader.ReadInternal()
    at Newtonsoft.Json.JsonTextReader.Read()
    at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateObject(Object newObject, JsonReader reader, JsonObjectContract contract, JsonProperty member, String id) 
    at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateObject(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
    at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueInternal(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue) 
    at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.Deserialize(JsonReader reader, Type objectType, Boolean checkAdditionalContent)
    at Newtonsoft.Json.JsonSerializer.DeserializeInternal(JsonReader reader, Type objectType)
    at Newtonsoft.Json.JsonConvert.DeserializeObject(String value, Type type, JsonSerializerSettings settings)
    at Newtonsoft.Json.JsonConvert.DeserializeObject[T](String value, JsonSerializerSettings settings)
    at Sitecore.ExperienceEditor.Speak.Server.Requests.PipelineProcessorRequest`1.Process(RequestArgs requestArgs)
Run Code Online (Sandbox Code Playgroud)

任何想法或解决方案都可能有所帮助

谢谢

Cra*_*lor 7

这是由Sitecore中确认的错误引起的.(开票时参考#84051)

您可以自己解决此问题,但我仍然建议您通过Sitecore,以确保您拥有所需的内容.

要解决这个问题,请查看/sitecore/shell/client/Sitecore/ExperienceEditor/ExperienceEditor.js文件,在510行,您将看到decodeURIComponent被调用两次.

将其更新为只调用一次data: decodeURIComponent(JSON.stringify(commandContext))将解决错误.

同样,/sitecore/shell/client/Sitecore/ExperienceEditor/RibbonPageCode.js第24行的文件需要进行更改.

在这里,添加decodeURIComponent方法调用就是修复这个文件.像这样:ribbonUrl: decodeURIComponent(this.PageEditBar.get("url")),

这可能也解决了Coveo问题,但我的客户目前还没有使用Coveo,所以我无法验证.