0

我正在使用控制器来创建 JSON 字符串。

StringBuilder builder = new StringBuilder();
...
builder.Append(String.Format(@"{{""lat"":{0}, ""lon"":{1}}},", latitude, longitude));

当涉及到视图时,上面的代码被渲染成类似

"lat":10.7654200827348, "lon":106.681716282384}

所以jQuery.parseJSON()不起作用,因为它不明白" 我该如何解决?先感谢您

4

2 回答 2

2

永远不要像这样手动创建 JSON。您可以让控制器操作返回 JsonResult:

public ActionResult SomeAction()
{
    var model = new
    {
        lat = latitude,
        lon = longitude
    };
    return Json(model, JsonRequestBehavior.AllowGet);
}

然后您可以使用 AJAX 调用来使用此操作:

<script type="text/javascript">
    $.getJSON('@Url.Action("SomeAction")', function(result) {
        // you could use result.lat and result.lon here directly
        alert('latitude: ' + result.lat + ', longitude: ' + result.lon);
    });
</script>

在这种情况下,您不需要手动构建或解析任何 JSON。该管道将​​由框架为您处理。

于 2013-03-31T14:48:03.770 回答
0

我不知道这是否能解决你的问题......但无论如何你应该遵循这个建议!

使用JavaScriptSerializerfromSystem.Web.Extensions.dll生成您的 JSON!

var serializer = new JavaScriptSerializer();
builder.Append(serializer.Serialize(new { lat = latitude, lon = longitude }));
于 2013-03-31T14:45:13.273 回答