Derzeit wird die Web-Methoden oder die meisten Methoden in klassischen Asp .net serialisiert system.web.script.serialization.javascriptserializer-Klasse, und dies gibt das so Datetime-Mitglieder mit den Werten der Javascript-Objekts alsGibt es eine Möglichkeit, DateTime im ISO-Format von einer asp.net-Webmethode anstelle von JSON-Format zurückzugeben?
„/ Datum (Anzahl der Ticks)/"
. Ich verstehe, dass dies ein berüchtigtes Problem ist, und die meisten Leute schlagen vor, eine Art von Konvertern zu verwenden, nachdem wir die Daten erhalten haben oder die Daten als String anstelle von Objekten zurückgeben.
Zum Beispiel der Klasse
public class Person
{
public String Name { get; set; }
public int Age { get; set; }
public DateTime DOB { get; set; }
}
wenn über eine System.Web.Services.WebMethod kehrte mit einer [Script (Responseformat = ResponseFormat.Json)] Dekoration, wird die Antwort, wie unten in Folge zurückgeführt werden. d
{Name:"Steve", Age:30, DOB:"/Date(1249335477787)/"};
Und wir müssen etwas Code anwenden, um das DOB in ISO-Format oder ein anderes akzeptables Format zu konvertieren.
Aber ich versuche nur zu sehen, ob jemand eine Art von Antwort Tweaking getan hat oder eine überforderte Klasse verwendet, um die DateTime-Werte von Web-Methoden zurückzugeben. Gibt es eine Möglichkeit, die Funktionalität des Javascriptserializers zu übersteuern und sie in asp.net-Webmethoden zu verwenden, so dass sie das Datum direkt im Format ISO zurückgibt? Ich bin mir bewusst, dass es in Asp.NET MVC in ein paar Möglichkeiten getan werden kann.
Ist das gleiche in ASP Web-Form Web-Methoden getan werden? Das würde eine Menge Code und Fehler sparen :)
Sie können Ihre eigenen benutzerdefinierten Json Serializier mit newtonsoft –
ja schreiben, aber wie sage ich der WebMethod diesen neuen benutzerdefinierten Serializer verwenden, um das Objekt zurückzugeben. Ich möchte es auch nicht als String zurückgeben :( – Muthu
ISO * ist * das JSON-Format. Verwenden Sie den (veralteten) JavaScriptSerializer vielleicht? –