Wir haben mehrere API-Controller akzeptieren GET-Anforderungen wie folgt:[FromUri] Serialisierung mit APIController
//FooController
public IHttpActionResult Get([FromUri]Foo f);
//BarController
public IHttpActionResult Get([FromUri]Bar b);
jetzt - wir möchten (oder gezwungen sind) Datetime-Zeichenfolge-Format innerhalb von GET Query-String ändern global
"yyyy-MM-ddTHH:mm:ss" -> "yyyy-MM-ddTHH.mm.ss"
Nach dem Wechsel alle [FromUri]
Serialisierungen mit Klassen enthalten DateTime
Typen versagen.
Gibt es eine Möglichkeit [FromUri]
Serialisierung ergänzen das Datums- und Uhrzeitformat in Query-String zu akzeptieren? Oder müssen wir eine benutzerdefinierte Serialisierung für alle API-Parameter erstellen, um das neue DateTime-Zeichenfolgenformat zu unterstützen?
EDIT: Beispiel wie gewünscht
public class Foo {
public DateTime time {get; set;}
}
//FooController. Let's say route is api/foo
public IHttpActionResult Get([FromUri]Foo f);
GET api/foo?time=2017-01-01T12.00.00
hh.mm.ss - Punkte ist cousing Erweiterung Problem. http://stackoverflow.com/questions/20404254/encode-email-to-pass-to-web-api – levent
Ok, aber das ist nicht der Punkt. Nehmen wir an, die Punkte würden durch - – supertopi
ersetzt werden. Wenn Sie js verwenden, können Sie den datetime-Wert vor der Übergabe an den Controller mit dem Befehl uricomponent codieren. Dann dekodiert und deserialisiert der Controller es. – Woot