我的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发送数据的方式如下:
最佳答案
您非常接近,只需再添加一个标头contentType
即可告诉服务器您正在以JSON格式发送:
$.ajax("/api/FlowApi/NewItems", {
method: "POST",
contentType: "application/json; charset=utf-8",
data: JSON.stringify({
Since: new Date()
})
});