Publier DateTime à un apicontroller dans ASP MVC 4 (Beta)
-
12-11-2019 - |
Question
Lorsque je publie un objet JSON avec une propriété Date à un apiController, il ne désérialiser pas à une date.
Code du site du serveur:
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; }
}
Ensuite, je fais une demande de poste avec Fiddler
PUBLIER http: // localhost: 62990 / megatest Http / 1.1
Utilisateur-agent: Fiddler
Hôte: localhost: 62990
Type de contenu: texte / json
Longueur du contenu: 54
{"Date": "/ Date (1239018869048) /", "name": "mec"}
Mais l'objet qui arrive n'a que le Name
Ensemble de propriétés, le Date
la propriété est {01.01.0001 00:00:00}
Est-ce que je manque des en-têtes ou des paramètres de projet?
Éditer: Les demandes proviennent réellement d'un HttpClient
. Est-il possible de formater la date avant d'envoyer la demande avec 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);
Éditer: Ceci est un bug connu avec l'ASP MVC 4 Beta et la version finale d'ASP MVC 4 utilisera Json.net En tant que sérialiseur JSON jusque-là, vous pouvez utiliser le sérialiseur XML par défaut ou changer le sérialiseur JSON par défaut pour Json.net. Plus d'informations peuvent être trouvées sur Blog Hanselman
Pas de solution correcte