У нас есть несколько контроллеров API принимает запросы GET так:комплемента [FromUri] сериализации с APIController
//FooController
public IHttpActionResult Get([FromUri]Foo f);
//BarController
public IHttpActionResult Get([FromUri]Bar b);
Теперь - мы хотели бы (или, вынуждены) изменить формат строки DateTime в GET строки запросов глобально
"yyyy-MM-ddTHH:mm:ss" -> "yyyy-MM-ddTHH.mm.ss"
После изменения всех [FromUri]
сериализаций с классами, содержащих DateTime
типов неудачи.
Есть ли способ дополнить серию сериализации, чтобы принять формат DateTime в строке запроса? Или нам нужно создать пользовательскую сериализацию для всех параметров API для поддержки нового формата строки DateTime?
EDIT: пример, как запрошенной
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 - это точки cousing проблема расширения. http://stackoverflow.com/questions/20404254/encode-email-to-pass-to-web-api – levent
Хорошо, но это не главное. Предположим, что точки будут заменены на: – supertopi
, если вы используете js, вы можете encodingURIComponent значение datetime, прежде чем передавать его в контроллер. Затем контроллер будет декодировать и десериализовать его. – Woot