【问题标题】:javascript - how to send json by postmessagejavascript - 如何通过 postmessage 发送 json
【发布时间】:2018-12-31 09:10:20
【问题描述】:

我有一个具有以下序列化 Json 字符串的 C# 字符串变量:

{
  "Video": "1",
  "Voice": "1"
}

我正在尝试通过postMessage 像这样发布它:

string jsonVerticalTypeQuantity = Newtonsoft.Json.JsonConvert.SerializeObject(VerticalTypeQuantity);

<script>
$(document).ready(function () {
    parent.postMessage({ "SelectedComponent": "@jsonVerticalTypeQuantity"}, "*");
});
</script>

但是当我在浏览器中查看它时,它会添加额外的字符,例如&amp;quot,这是为什么呢?以及如何按原样发布 JSON 字符串?

【问题讨论】:

  • 您是否尝试在 javascript 中使用 c# 变量??
  • @shajji 是的,它是一个 MVC 视图
  • 这些 &quot 表示双引号 (") 来替换这个你可以检查这个link
  • 这有帮助吗?

标签: javascript json html asp.net-mvc-4 postmessage


【解决方案1】:

@ 指令自动编码输出字符串,同时将服务器端 Razor 变量用作编码的 HTML。你应该把 @Html.Raw() 助手返回未编码的 JSON 字符串:

parent.postMessage({ "SelectedComponent": @Html.Raw(jsonVerticalTypeQuantity) }, "*"); 

或者使用变量作为替代:

@{
    string jsonVerticalTypeQuantity = Newtonsoft.Json.JsonConvert.SerializeObject(VerticalTypeQuantity);
}

<script>
$(document).ready(function () {
    var jsonData = @Html.Raw(jsonVerticalTypeQuantity);
    parent.postMessage({ "SelectedComponent": jsonData }, "*");
});
</script>

相关问题:

MVC failed to make a json string in view for a variable in javascript

【讨论】:

  • 可能会出现语法错误,因为它不是作为字符串包含的。如果这是您的问题,请尝试使用 "@Html.Raw(jsonVerticalTypeQuantity)"(带双引号)。
猜你喜欢
  • 2010-11-22
  • 1970-01-01
  • 2012-11-11
  • 1970-01-01
  • 2014-06-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多