2013-03-01 32 views
2

我的ApiController不會收到包裝在視圖模型中的我的DateTime對象。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

+0

會發生什麼當你改變從字符串的類型? – dakait 2013-03-01 06:34:05

+0

您正在向'/ api/FlowApi/NewItems'發送ajax請求,您在期望值的問題中顯示的端點是'PostNewItems' ...錯字? – dakait 2013-03-01 06:35:32

+0

否Dakait。它是一個ApiController。 – 2013-03-01 06:44:21

回答

4

你都非常接近,只是增加一個頭contentType告訴服務器,你是JSON格式發送:

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

啊哈!謝謝一堆。 – 2013-03-01 06:44:36