ApiController没有收到我的DateTime?

时间:2013-03-01 06:27:17

标签: c# jquery json controller asp.net-web-api

我的ApiController没有收到视图模型中包含的DateTime对象。

这是我的控制器的内容。

public class FlowApiController : ApiController
{
    // GET api/flowapi
    public async Task<IEnumerable<FlowItemViewModel>> PostNewItems(SinceNullableViewModel input)
    {
        var since = input.Since; //since will be null for some reason

        ...

        return something;
    }
}

然后这是我的jQuery AJAX调用。我尝试了很多不同的东西,没有运气。这就是我目前所拥有的。

$.ajax("/api/FlowApi/NewItems", {
    method: "POST",
    data: JSON.stringify({
        Since: new Date()
    })
});

最后,这是我的SinceNullableViewModel

public class SinceNullableViewModel
{
    public DateTime Since { get; set; }
}

我在这里做错了什么?

Chrome按以下方式发送数据:

enter image description here

1 个答案:

答案 0 :(得分:4)

您非常接近,只需添加一个标头contentType即可告诉服务器您以JSON格式发送:

$.ajax("/api/FlowApi/NewItems", {
    method: "POST",
    contentType: "application/json; charset=utf-8",
    data: JSON.stringify({
        Since: new Date()
    })
});