Comment passer DateTime paramètre à l'aide de l'API Web attribut de routage?

Je suis en train de travailler sur une API REST avec ASP.NET Web API 2.
Chose de mal quand j'essaye d'intégrer des dates dans le jeu.

Voici le parcours:

[Route("{id:Guid}/{from:DateTime}/{to:DateTime}")]

Quand je fais ce que je peux parfaitement passer quelque chose comme

.../[id]/2012-01-01/2013-01-01

Cependant, quand je suis arrivé au point où j'ai besoin de l'information en temps, elle devient assez mauvais, imaginons ceci:

.../[id]/2012-01-01/2013-01-01 1:45:30 PM/2013-01-01 1:45:30 PM

Il semble que les espaces allez OK, mais les ":" sont de blocage. J'ai donc bien que je devrais utiliser mon propre format, étant yyyyMMddhhmm. Cela donne à l'URL suivante:

.../[id]/201301031147/201401031147

Cependant, .NET n'attend pas cela comme un DateTime et ne sait pas comment l'utiliser. J'ai donc utilisé une IHttpRouteConstraint pour l'autoriser.
Le problème est qu'il ne sait toujours pas comment traiter avec elle après que j'ai dit c'est que c'est bien...

Donc ma question est, comment voulez-vous passer un DateTime pour la route?

Avez-vous essayé de coder l'url de la requête? Par exemple, si vous encodez cette chaîne 2013-01-01 1:45:30 PM/2013-01-01 1:45:30 PM, vous obtiendrez ce 2013-01-01%201%3A45%3A30%20%2F2013-01-01%201%3A45%3A30%20PM
Bonjour, merci pour la réponse! J'utilise en fait RestSharp sur le côté client et il le fait automatiquement.
Tous les droits. Ce sujet de faire de votre chaîne de date compatible avec L'Universel Sortable Format. Pourriez-vous vérifier si cela fonctionne? Voici un exemple de chaîne de date représentée dans ce format: 2008-04-10 13:30:00Z
Merci encore! J'ai essayé de u, o et s formats décrits dans le site web msdn ( msdn.microsoft.com/fr-fr/library/zdtaw1bw(v=vs. 110).aspx ) vous refeering est u. Pas de chance cette manière ou d'une autre malheureusement... je pense qu'il doit y avoir un endroit pour dire le cadre du format à utiliser, ou quelque chose comme ça. Ou au moins un moyen de prendre les données pour les transformer moi-même dans un DateTime
Une approche pour surmonter ce problème est de convertir l'objet datetime au format UTC au client, et à l'arrière de type datetime de l'UTC dans le webapi.

OriginalL'auteur Georges | 2014-01-03