我有一个名为Parcel的模型类。此宗地包括名称, CenterPoint 参数:
public class Parcel
{
public string Name { get; set; }
public object CenterPoint { get; set; }
}
我从地图中获取theese参数。当我点击一个包裹中心点时,计算并在javascript中设置一个变量。 CenterPoint 是 json 对象。 名称是纯文本数据。
我想将CenterPoint保存为数据库中的Json对象。当我再次在地图上获得CenterPoint时,我可以绘制它。
当我将数据发布到操作方法时,我的CenterPoint对象就像这样 {object}。
实际上它应该是这样的: {type =" point",x = 121.32380004076,y = 452.024614968}
[HttpPost]
public ActionResult SaveParcel(Parcel parcel)
{
return Json(new {parcel}, JsonRequestBehavior.AllowGet);
}
我的javascript jode在这里:
var postata = {
"Name": document.getElementById("name").value,
"CenterPoint": document.getElementById("center").value
};
$http({
method: 'POST',
url: "/Parcel/SaveParcel/",
data: postata,
}).success(function (data, status, headers, config) {
console.log(data);
});
如何保存和获取JSON作为orginally。或者有一种好的方法可以通过吗?
答案 0 :(得分:0)
我认为问题是......将JSON反序列化器将您的Point
转换为匿名类(将其置于通用Object
属性中)? AFAIK号:详情请见this post(如果您确实需要,请使用手工制作的解决方案)。
我会定义一个Location
类:
public class Location
{
public type { get; set; }
public float x { get; set; }
public float y { get; set; }
}
然后将Parcel
更改为:
public class Parcel
{
public string Name { get; set; }
public Location CenterPoint { get; set; }
}
请注意“...在通用Object
属性中......”。反序列化器不会这样做,但Json.NET将执行dynamic
对象所需的操作,然后您可以将Parcel
类重写为:
public class Parcel
{
public string Name { get; set; }
public dynamic CenterPoint { get; set; }
}