Javascript - как отправить JSON по почте - PullRequest
0 голосов
/ 31 декабря 2018

У меня есть строковая переменная 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 голосов
/ 02 января 2019

Директива @ автоматически кодирует выходную строку, когда используется против переменной 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 не удалось создать строку json для переменной в javascript

...