2016-03-27 24 views
0

"yyyy-MM-dd" temel biçiminde olmak için her DateTime nesnesine ihtiyacım var. Bunu yapmak için Json.NET kullanıyordum zaman Web API 2.0 - JavaScriptConverter ile Özel Tarih Biçimlendirme

, bu WebApiConfig.cs aşağıdaki ekleyerek iyi çalıştı:

config.Formatters.JsonFormatter.SerializerSettings.Converters.Add(
     new IsoDateTimeConverter() { DateTimeFormat = "yyyy-MM-dd" }); 

Ancak, ben IHttpActionResult ve sadece return Json(objectToSerialize) dönmek benim denetleyicileri yeniden düzenlendi. Şimdi tarih biçimlerinin yanlış olduğunu sanıyorum çünkü bu şu anda JavaScriptConverter kullanıyor. Yanılıyorsam haberim olsun.

Seri hale getirilmiş nesnemdeki her DateTime'ı ihtiyacım olan biçime nasıl dönüştürebilirim?

Varsayılan olarak, şimdi "1927-01-29T00: 00: 00" olarak görünüyorlar ... "1927-01-29" öğesine ihtiyacım var.

Toplam overkill (this one gibi) gibi görünen bazı çılgın hack'ler gördüm.

Bunu yapmanın temiz bir yolu var mı?

+0

tutulması olmalıdır Ama gerçekten JavaScriptConverter kullanmak gerekiyor? –

+0

Dürüst olmak gerekirse hiçbir fikrim yok, bu yüzden soruyorum. Nesneleri serileştirirken Web API'sini TÜM tarihleri ​​biçimlendirmeye zorlayan global bir yapılandırma ayarını tercih ederim. Denetleyici 'IHttpActionResult' döndürür ve dönüş satırı 'dönüş Json (myObject)' olur. – Patrick

cevap

2

Yine de IHttpActionResult'u kullanabilirsiniz, ancak döndüğünüz şey doğru şey değildir. Senin durumunda Sana aracılığıyla düzeltebilirim inanıyoruz:

return Ok(objectToSerialize); 

o WebAPI varsayılan olarak Json.NET tutacak ve size tarih biçimlendirme

+0

Bu hile yaptı. Teşekkürler. JsonResult'u beklediğim ve şimdi OkNegotiatedContentResult'u görecek bir sürü testimi yeniden yazmam gerekiyor ama sorun değil. – Patrick

İlgili konular