我已经创建了一个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}
});
这些都是在视图上的razor中完成的。现在我需要将这个输出添加到我的javascript中,它位于相同视图的底部,位于单独的部分中。
@section Scripts {
<script>
/* <![CDATA[ */
jQuery(document).ready(function ($) {
'use strict';
var locations = @branchesJson.ToString();
alert(JSON.stringify(locations));
});
/* ]]> */
</script>
}
然后使用.ToString()
方法我得到如下输出:
[
{
"name": "Brugge",
"lat": "51.246701",
"long": "3.200326"
},
{
"name": "Destelbergen",
"lat": "51.052056",
"long": "3.761034"
},
{
"name": "Sint-Niklaas",
"lat": "51.143114",
"long": "4.171444"
},
{
"name": "Terneuzen",
"lat": "51.301069",
"long": "3.848187"
},
{
"name": "Vlissingen",
"lat": "51.472778",
"long": "3.592411"
}
]
在错误控制台中给出错误。
当我使用替换功能.Replace(""", """)
时,它仍然显示我"
而不是"
。
您应该这样使用Html.Raw
:
var locations = @Html.Raw(branchesJson.ToString());
这里有一些文档:
在一个HtmlString实例中包装HTML标记,以便它被解释作为HTML标记。