在 Javascript 中渲染时取消编码服务器端字符串
Unencode server side string when rendering in Javascript
我正在从控制器返回一个显示网格的模型。工作正常。我还需要使用相同的数据在谷歌地图上生成点。我在原型中设置了以下代码,需要替换这些代码:
var locationsAll = [
["Pretty", 40.1508, -83.21],
["Little", 40.1308, -83.11],
["Smug", 40.001, -83.01],
["Troublemaker", 40.109, -83.291],
["Smallest", 40.08, -83.20]
];
PlotpointsonMap(locationsAll);
目前为止,一切都好。这有效,所以我将其转换为 javascript,如下所示:
@{
var locations = "[";
foreach (var gmap in Model.MapPoints )
{
locations += "['" + gmap.EventStringData + "'," + gmap.Latitude + "," + gmap.Longitude + "],";
}
locations = locations.TrimEnd(',') + "]";
}
var myLocations = @locations;
PlotpointsonMap(myLocations);
但是,这一半有效。当我查看生成的源代码时,我在 javascript 块中得到以下代码:
var myLocations = [["update",40.080398,-83.139141]
我需要它像这样渲染:
var myLocations = [["update",40.080398,-83.139141]
非常感谢有关如何实现这一目标的任何想法。我试过了:
var myLocations = @Server.HtmlDecode(locations);
它给了我同样的结果:(
哇,不!请不要手动操作 JSON。请不要使用逗号,没有引号,没有修剪,没有括号。那颗心。
只需使用 JSON 解析器:
<script type="text/javascript">
var locationsAll = @Html.Raw(Json.Encode(
Model.MapPoints.Select(x => new object[]
{
x.EventStringData, x.Latitude, x.Longitude
})
));
PlotpointsonMap(locationsAll);
</script>
JSON 解析器现在向您保证,无论您在此MapPoints
中拥有什么数据,它都将始终正确编码。
相关文章:
- 如何在angularJS中编辑时,如果DB中的值为true,则设置复选框,如果值为false,则取消选中复选框
- jquery点击函数select&取消选择
- 使用Jquery选择或取消选择ListView中的所有复选框
- 使用jquery选中/取消选中单个复选框
- 将地理编码结果转换为php变量以发布到mysql数据库
- 使用javascript取消隐藏和隐藏表单中的某些元素
- 如何销毁/删除/取消绑定SnapSVG.js
- 滚动然后捕捉到顶部而不是取消捕捉
- 取消绑定主干视图事件
- 如何取消object.prototypes javascript的一个函数
- Json在完整日历中对数据进行了编码
- 使用javascript在页面加载时取消选中所有复选框
- 阻止浏览器对keydown事件作出反应,但不取消该事件
- jquery选中并取消选中所有操作
- IE11中的第二个调用取消了第一个Fetch API调用
- 如何对每个用户每天只允许单击一次的按钮进行编码
- 在 Javascript 中渲染时取消编码服务器端字符串
- 取消之前对谷歌地图地理编码方法的调用
- 如何编码,以便在用户单击箭头时,段落隐藏和取消隐藏
- 带有切换/滑动的选中/取消选中树-一些小的编码问题