Javascript C#Web API JSON字符串映射到对象

Javascript C#Web API JSON字符串映射到对象,javascript,json,asp.net-web-api,json.net,Javascript,Json,Asp.net Web Api,Json.net,我有一个接收JSON对象的Web API方法 从客户端发布的JSON是: { "EmployerId": 1, "EmployeeId": 6, "HolidayTypeId": 1, "CategoryType": "Normal", "SelectedDates": { "Wed Jul 16 2014": "2014-07-16T00:00:00", "Thu Jul 17 2014": "2014-07-17T00:

我有一个接收JSON对象的Web API方法

从客户端发布的JSON是:

{
    "EmployerId": 1,
    "EmployeeId": 6,
    "HolidayTypeId": 1,
    "CategoryType": "Normal",
    "SelectedDates": {
        "Wed Jul 16 2014": "2014-07-16T00:00:00",
        "Thu Jul 17 2014": "2014-07-17T00:00:00",
        "Fri Jul 18 2014": "2014-07-18T00:00:00"
    }
}
Web方法如下所示:

[HttpPost]
public HttpResponseMessage UpdateHolidayRequest([FromBody] Model.HolidayRequestModel request) {

    HttpResponseMessage returnVal = null;

    returnVal = Request.CreateResponse(HttpStatusCode.OK, new Model.Custom.JsonResponse {
        data = null,
            message = "",
            num = 1,
            success = true
    });

}
我的
HolidayRequestModel
课程是:

public class HolidayRequestModel {
    public int HolidayId {
        get;
        set;
    }
    public int EmployeeId {
        get;
        set;
    }
    public byte HolidayTypeId {
        get;
        set;
    }

    // Selected Dates
    public List<string> SelectedDates {
        get;
        set;
    }
}
公共类HolidayRequestModel{
公共假日酒店{
收到
设置
}
公共国际雇员ID{
收到
设置
}
公共字节HolidayTypeId{
收到
设置
}
//选定日期
公开选定日期列表{
收到
设置
}
}
除了
SelectedDates
之外,我获得了所有的属性,因为我刚刚意识到这不是一个
列表,因为
SelectedDates
有一个字段和一个值


要在我的模型中填充
SelectedDates
属性类型,有什么线索吗?

SelectedDates
属性更改为
字典(或者可能是
字典
),而不是
列表
,这将允许它正确反序列化

e、 g:

public class HolidayRequestModel {

    ...

    // Selected Dates
    public Dictionary<string, string> SelectedDates {
        get;
        set;
    }
}
公共类HolidayRequestModel{
...
//选定日期
公共字典精选日期{
收到
设置
}
}

我认为日期格式应该类似于:
“SelectedDates”:[“2014-07-16T00:00:00”]
您希望在SelectedDates上有一个列表,但您发布了JSON对象{}。您应该将JSON更改为[]我无法控制客户端代码:(您可以创建一个自定义消息处理程序,将其更改为使用[]。