innerHTML没有更新某些Pre标签

时间:2016-12-13 19:53:08

标签: c# razor

我已经获得了一些我需要美化的序列化JSON数据。所以基本上我想要显示

{"AuthorizationId":123245,"AuthorizationIdSpecified":true,"ClientAuthorizationId":null,"Date":"2016-12-07T15:22:29+00:00","Message":"","PersonId":"345543654645","Status":0}

作为

{
  "AuthorizationId": 123245,
  "AuthorizationIdSpecified": true,
  "ClientAuthorizationId": null,
  "Date": "2016-12-07T15:22:29+00:00",
  "Message": "",
  "PersonId": "345543654645",
  "Status": 0
}

hiddenData_ *是最初呈现JSON的隐藏范围。 response-container_ *是一个显示结构化JSON的预标记。有一个Razor循环遍历模型。

脚本是



  var x = document.getElementById("hiddenData_@Model[i].TriggerTime.Ticks").innerHTML;
  var y = JSON.parse(x);
  var z = JSON.stringify(y, null, 2);
  document.getElementById("response-container_@Model[i].TriggerTime.Ticks").innerHTML = z;




问题是pre标签的innerHTML正在更新,但是没有在DOM中呈现。奇怪的是它适用于某些JSON数据但不适用于其他数据。

我做错了什么?

2 个答案:

答案 0 :(得分:0)

当你将字符串化的JSON放在Pre标签中时,我相信你可以尝试使用innerText而不是innerHtml(因为你没有添加后代,而是预先格式化的文本)

答案 1 :(得分:0)

使用Razor找出一种更简单的方法。感谢您的建议。

Newtonsoft.Json.JsonConvert.SerializeObject(Newtonsoft.Json.JsonConvert.DeserializeObject(Model[i].SerializedEventData), Newtonsoft.Json.Formatting.Indented);