當我發佈帶有日期屬性的json對象到ApiController時,它不會反序列化爲日期。將日期時間發佈到ASP MVC 4中的ApiController(Beta)
服務器站點代碼:
public class MegaTestController : ApiController
{
// POST /megatest
public void Post(ttt value)
{
string sdf = "!sad";
}
}
public class ttt
{
public DateTime Date { get; set; }
public string Name { get; set; }
}
然後我做小提琴手
POST POST請求http://localhost:62990/MegaTest HTTP/1.1
的User-Agent:提琴手
主機:本地主機:62990
內容類型:text/JSON
的Content-Length:54
{ 「日期」: 「/日期(1239018869048)/」, 「名稱」: 「哥們」 }
但只有到來的對象具有Name
屬性集,Date
屬性{01.01.0001 00:00:00}
我失去了任何標題或項目設置?
編輯:這些要求實際上是從HttpClient
到來。 HttpClient
發送請求之前是否可以格式化日期?
public Task<T> Create<T>(T item)
{
var service = new HttpClient();
service.BaseAddress = new Uri("http://localhost:62990");
var method = typeof(T).Name + "s"; // in this case it will be ttts
var req = new HttpRequestMessage<T>(item);
req.Content.Headers.ContentType = new MediaTypeHeaderValue("text/json");
return service.PostAsync(method, req.Content).ContinueWith((reslutTask) =>
{
return reslutTask.Result.Content.ReadAsAsync<T>();
}).Unwrap();
}
var data = new ttt { Name = "Dude", Date = DateTime.Now };
Create(data);
編輯:這是一個已知的bug與ASP MVC 4 Beta版和ASP MVC 4的最終版本將使用Json.net作爲JSON序列化到那時,你可以使用默認的XML序列化或將Json.net的默認Json串行器切換出來。更多信息可以在hanselman blog
http://stackoverflow.com/questions/206384/how-to-format-a-json-date – tugberk 2012-02-23 19:25:06