में एक एपीकंट्रोलर को डेटटाइम पोस्ट करना जब मैं एक एपीकंट्रोलर को दिनांक संपत्ति के साथ एक जेसन ऑब्जेक्ट पोस्ट करता हूं तो यह किसी तारीख में deserialize नहीं होगा।एएसपी एमवीसी 4 (बीटा)
सर्वर साइट कोड:
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; }
}
तब मैं Fiddler
POST के साथ कोई पोस्ट अनुरोध कर http://localhost:62990/MegaTest HTTP/1.1
उपयोगकर्ता-एजेंट: Fiddler
मेजबान: स्थानीय होस्ट : 629 9 0
सामग्री प्रकार: पाठ/json
सामग्री-लंबाई: 54
{ "दिनांक": "/ तारीख (1239018869048) /", "नाम": "Dude" }
लेकिन वस्तु केवल में आ रहा है 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);
संपादित: यह एएसपी MVC 4 बीटा और एएसपी MVC 4 के अंतिम संस्करण एक json serializer के रूप में Json.net का उपयोग करेगा तब तक आप डिफ़ॉल्ट एक्सएमएल serializer उपयोग कर सकते हैं के साथ एक ज्ञात बग है Json.net के लिए डिफ़ॉल्ट जेसन सीरिएलाइज़र को स्विच करें। अधिक जानकारी hanselman blog
http://stackoverflow.com/questions/206384/how-to-format-a-json-date – tugberk