Отправка DateTime в ApiController в ASP MVC 4 (бета)

Когда я отправляю объект json со свойством даты в 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

Content-Type: text / json

Content-Length: 54

{ «Дата»: «/ Дата (1239018869048) /», «Имя»: «Чувак» }

Но входящий объект имеет только свойство Имя , свойство Дата - {01.01.0001 00:00:00}

Не хватает ли заголовков или настроек проекта?


Изменить : запросы на самом деле поступают от HttpClient . Можно ли отформатировать дату перед отправкой запроса с помощью HttpClient ?

public Task Create(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(item);
    req.Content.Headers.ContentType = new MediaTypeHeaderValue("text/json");

    return service.PostAsync(method, req.Content).ContinueWith((reslutTask) =>
    {
        return reslutTask.Result.Content.ReadAsAsync();
    }).Unwrap();
}

var data = new ttt { Name = "Dude", Date = DateTime.Now };
Create(data);

Изменить : это известная ошибка в бета-версии ASP MVC 4, и окончательная версия ASP MVC 4 будет использовать Json.net в качестве сериализатора json, до тех пор вы можете использовать сериализатор XML по умолчанию или отключить сериализатор Json по умолчанию для Json.net . Дополнительную информацию можно найти в блоге hanselman

12
задан Bjarki Heiðar 28 March 2012 в 17:36
поделиться