javascript-如何通过postmessage发送json

时间:2018-12-31 09:10:21

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

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

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

,我正尝试通过postMessage发布,如下所示:

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

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

但是当我在浏览器中选中它时,它会添加诸如&quot之类的多余字符,这是为什么呢?以及如何按原样发布JSON字符串?

1 个答案:

答案 0 :(得分:2)

@指令在对服务器端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