使用json将位置传递给web api

使用json将位置传递给web api,json,asp.net-web-api,geolocation,json.net,Json,Asp.net Web Api,Geolocation,Json.net,我在WebAPI中有上面的类,我的get all和get by id函数可以工作。下面是它们返回的json示例: [DataContract] public partial class Event { [DataMember] public int EventId { get; set; } [DataMember] [Required] [StringLength(50)] public string UserId { get;

我在WebAPI中有上面的类,我的get all和get by id函数可以工作。下面是它们返回的json示例:

[DataContract]
public partial class Event
{
    [DataMember]
    public int EventId { get; set; }        
    [DataMember]
    [Required]
    [StringLength(50)]
    public string UserId { get; set; }
    [DataMember]
    [Required]
    public string EventDescription { get; set; }
    [DataMember]
    [Column(TypeName = "smalldatetime")]
    public DateTime Timestamp { get; set; }
    [DataMember]
    public int ActivityId { get; set; }
    [DataMember]
    public DbGeography Location { get; set; }
    [IgnoreDataMember]
    public virtual Activity Activity { get; set; }
}
但是,如果我将相同的json传递回post方法,它将无法将位置转换为dbgeography类型。我尝试过以不同的方式格式化位置,但在位置中总是会出现nullReferenceException

是否有一种特殊的方式可以用json格式化位置?我本以为,如果它序列化为该格式,它将能够反序列化该格式


谢谢

您在发布
帖子时是否发送
内容类型:application/json
标题?
{
"EventId": 6,
"UserId": "1",
"EventDescription": "Auckland city test",
"Timestamp": "2015-02-11T00:00:00",
"ActivityId": 1,
"Location": {
"Geography": {
"CoordinateSystemId": 4326,
"WellKnownText": "POINT (180.756117 -30.85824)"
}
}
}