在ASP.NET MVC剃刀中使用Newtonsoft JArray ToString双引号

时间:2015-07-07 17:34:56

标签: asp.net asp.net-mvc razor json.net

我创建了一个JArray列表:

JArray branchesJson = new JArray();

然后,当我使用foreach迭代时,我将对象添加到列表中,如:

// Add branch to the json array
branchesJson.Add(new JObject
{
    {"name", branch.Name},
    {"lat", branchDetails.Lat},
    {"long", branchDetails.Long}
});

这一切都是在剃刀上完成的。现在我需要将此输出添加到我的javascript中,该javascript位于底部的相同视图中的单独部分。

@section Scripts {
    <script>
        /* <![CDATA[ */
        jQuery(document).ready(function ($) {
            'use strict';

            var locations = @branchesJson.ToString();

            alert(JSON.stringify(locations));

        });
        /* ]]> */
    </script>
}

然后使用.ToString()方法得到如下输出:

[
  {
    &quot;name&quot;: &quot;Brugge&quot;,
    &quot;lat&quot;: &quot;51.246701&quot;,
    &quot;long&quot;: &quot;3.200326&quot;
  },
  {
    &quot;name&quot;: &quot;Destelbergen&quot;,
    &quot;lat&quot;: &quot;51.052056&quot;,
    &quot;long&quot;: &quot;3.761034&quot;
  },
  {
    &quot;name&quot;: &quot;Sint-Niklaas&quot;,
    &quot;lat&quot;: &quot;51.143114&quot;,
    &quot;long&quot;: &quot;4.171444&quot;
  },
  {
    &quot;name&quot;: &quot;Terneuzen&quot;,
    &quot;lat&quot;: &quot;51.301069&quot;,
    &quot;long&quot;: &quot;3.848187&quot;
  },
  {
    &quot;name&quot;: &quot;Vlissingen&quot;,
    &quot;lat&quot;: &quot;51.472778&quot;,
    &quot;long&quot;: &quot;3.592411&quot;
  }
]

这会在错误控制台中出现错误。

当我使用替换功能.Replace("&quot;", "\"")时,它仍向我显示&quot;而不是"

1 个答案:

答案 0 :(得分:3)

你应该像这样使用Html.Raw

var locations = @Html.Raw(branchesJson.ToString());

Here there is some documentation

  

在HtmlString实例中包装HTML标记,以便对其进行解释   作为HTML标记。