0

コントローラーを使用して JSON 文字列を作成しています。

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

ビューに関しては、上記のコードは次のようにレンダリングされます

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

sojQuery.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

これで問題が解決するかどうかはわかりませんが、とにかくこのアドバイスに従うべきです!

JavaScriptSerializerからを使用してSystem.Web.Extensions.dll、JSON を生成してください。

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