Когда я публикую json-объект со свойством date в ApiController, он не десериализуется в дату.
Код сайта сервера:
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
Пользователь-агент: Fiddler
Хост: localhost: 62990
Содержимое-Тип: текст / json
Длина содержимого: 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);
Редактировать : это известная ошибка в ASP MVC 4 Beta иВ окончательной версии ASP MVC 4 Json.net будет использоваться в качестве сериализатора json, пока вы не сможете использовать сериализатор XML по умолчанию или отключить сериализатор Json по умолчанию для Json.net .Более подробную информацию можно найти в блоге hanselman