Kiedy umieszczam obiekt Json z właściwością date na ApiController, nie przekształci się to w datę.Opublikowanie DateTime do ApiController w ASP MVC 4 (Beta)
Server kod strony:
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; }
}
Potem zrobić żądania POST z Skrzypek
POST http://localhost:62990/MegaTest HTTP/1.1
User-Agent: Skrzypek
Host: localhost : 62990
Content-Type: text/json
Content-Length: 54
{ "Date": "/ data (1239018869048) /", "Name": "Koleś" }
ale obiekt w najbliższych tylko ma zestaw Name
nieruchomości, nieruchomość Date
jest {01.01.0001 00:00:00}
jestem brakuje żadnych nagłówków lub ustawienia projektu?
Edit: Wnioski są rzeczywiście pochodzące z HttpClient
. Czy możliwe jest sformatowanie daty przed wysłaniem żądania za pomocą 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);
Edit: Jest to znany błąd z ASP MVC 4 beta i ostatecznej wersji ASP MVC 4 użyje Json.net jako serializatora json dopiero wtedy można użyć serializatora domyślne XML lub wyłącz domyślny serializator Json dla Json.net. Więcej informacji można znaleźć pod adresem hanselman blog
http://stackoverflow.com/questions/206384/how-to-format-a-json-date – tugberk