2

我的 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 发送数据如下:

在此处输入图像描述

4

1 回答 1

4

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

$.ajax("/api/FlowApi/NewItems", {
    method: "POST",
    contentType: "application/json; charset=utf-8",
    data: JSON.stringify({
        Since: new Date()
    })
});
于 2013-03-01T06:35:03.077 回答