Как избегать того, чтобы "он кодировался как " в Razor?

Хороший вопрос здесь - что я работаю в файле razor и прохожу queriendo создавать json начиная с array в vb.net следующего способа:

For Each ItineraryPnr In ItinerariesNode.ChildNodes
    arrayPnrRetrieve(contPnr) = New With {Key .trasactionId = ItineraryPnr.SelectSingleNode("TransactionId").InnerText, .isSucces = False, .provider = ItineraryPnr.SelectSingleNode("Provider").InnerText, .pnr = ItineraryPnr.SelectSingleNode("PNR").InnerText, .errors = Nothing}
    contPnr = contPnr + 1
Next

Dim serializerPnrModel As New JavaScriptSerializer()
Dim jsonPnrRQ As String = serializerPnrModel.Serialize(arrayPnrRetrieve)

Предыдущее производит что-то вроде следующее мне и я это распределяю в переменную jsonPnrRQ:

[
  {
   "trasactionId":"c592360b-3d29-4689-9683-8b53b4880099",
   "isSucces":false,
   "provider":"4O",
   "pnr":"DBZD2N",
   "errors":null
  }
]

Тогда хотеть распределить это в переменную javascript следующего способа:

 @<script>
     var metadata = {};            

     metadata.jsonEx = {};
     metadata.jsonEx.pnrRetrieve = @jsonPnrRQ;
     metadata.jsonEx.sequenceNumber = "3";

  </script>

Он оставляет мне ciclado страницу и посылает мне ошибку синтаксиса, будучи что переменная jsonPnrRQв debuguearlo эта в правильном формате.

Ошибка - следующая:

Uncaught SyntaxError: Unexpected token &

Вопрос был бы если в произошедшее и он имеет по отношению к кому-то какое-то решение для этого?

Напечатав мой объект Js он показывает это мне следующего способа

 metadata.jsonEx = {};
 metadata.jsonEx.pnrRetrieve = [{&quot;trasactionId&quot;:&quot;c592360b-3d29-4689-9683-8b53b4880099&quot;,&quot;isSucces&quot;:false,&quot;provider&quot;:&quot;4O&quot;,&quot;pnr&quot;:&quot;DBZD2N&quot;,&quot;errors&quot;:null}];
 metadata.jsonEx.sequenceNumber = "3";

И я думаю, что это может быть проблемой, тогда, другой вопрос был бы: Кто-то имеет идею, что распределяет это мне так, и как я могу решать это? будучи что переменная jsonPnrRQ у него есть хорошо Ваша стоимость (это, потому что aldebugearlo он выходит с правильным форматом).

3
задан 14.03.2016, 23:26
1 ответ

Попытайся с sgte:

metadata.jsonEx.pnrRetrieve = @Html.Raw(jsonPnrRQ);

Проблема - что контент string jsonPnrRQ оно кодируется как HTML и конвертирует " в &quot;. Это такое, как функционирует назначенный по умолчанию Razor, чтобы предотвращать какие-то проблемы безопасности.

В этом случае мы хотим интегрировать контент в коде язык сценариев JavaScript вместо того, чтобы показывать как текст HTML, с @Html.Raw() посылается такой контент, каков, не кодируя этого.

Кроме того имей в виду, что JSON не то же самое, что и язык сценариев JavaScript. Я рекомендую меняться тебе JavaScriptSerializer из-за другого книжного магазина, чем serialize JSON как Json.NET

3
ответ дан 24.11.2019, 14:44
  • 1
    ok, я это приму во внимание librer и # 237; в, спасибо я функционирую. – Goyo 14.03.2016, 20:44