【发布时间】:2021-09-24 05:43:25
【问题描述】:
我有一个包含位置数据的数据集。在 GetLocation 中,数据被转换为纬度和经度值。这很好用。但是当我返回到 html 页面时。数据未定义。是什么原因?以及如何使用 JSon-data 解决这个问题?
[HttpGet]
public JsonResult GetLocation(Dictionary<string, string> items)
{
var result = "{ 'latitude': '" + latitude + "', 'longitude': '" + longitude + "'}";
return Json(result);
}
在html中:
if (item.Location == null) {
$.ajax({
url: "@Url.Action("GetLocation", "Home")",
dataType: "json",
data: { items: item },
type: "GET",
success: (function (data) {
location = JSON.parse(data);
})
});
console.log("location:");
console.log(location);
【问题讨论】:
-
“未定义”是什么意思?
data变量中有什么?此外,您在此处对 JSON 进行双重编码。 action 方法中的Json函数将字符串编码为JSON。你可以改为return Json(new { latitude, longitude }); -
数据是 GetLocation-action 的输入。它被解读为带有键和值的字典。输出必须是具有两个值 Latitude 和 Longitude 的对象。
-
我的意思是
success方法中的data参数。
标签: c# json ajax model-view-controller