2014-03-03 6 views
5

Beim Übergeben von Js Date-Objekte an meine ASP.NET Web Api-Controller, bekomme ich immer Null. Ich habe versucht, Strings, Array von String, Zeitspanne - alle diese Werke, außer Date. Wenn die Anforderung Inspektion wird das Datum wie folgt geführt:

date:"2014-03-13T15:00:00.000Z" 

In Winkel:

$http({ 
    method: 'get', 
    url: 'api/stuff', 
    params: { 
     date: new Date() 
    } 
); 

In meinem ApiController:

public IEnumerable<StuffResponse> Get(
    [FromUri] DateTime? date 
){ ... } 

Was ist der richtige Weg Daten passieren?

Antwort

1

Die Formatierung des Datums in Ihrem Javascript ist nicht kompatibel mit dem .NET DateTime-Parsing. Sehen Sie hier nach gültigen Formaten.

http://msdn.microsoft.com/en-us/library/az4se3k1(v=vs.110).aspx

+0

entweder ein anderes Format wie @Rondles verwenden zu sagen hat oder es nur als String aufnehmen und es analysieren – SnareHanger

+0

mit 'DateTime.Parse' beim Senden die js Datum durch Postdata, .NET schafft eine DateTime - also ich vermute, es würde funktionieren, wenn get und params auch verwenden .. – Trylling

+0

Das Format des Datums ("2014-03-13T15: 00: 00.000Z") ist genau das gleiche für $ http post data und get params, aber der ApiController kann die Zeichenkette nicht als DateTime für get params erkennen. – Trylling

13

Dies funktioniert für mich:

$http({ 
    method: 'get', 
    url: 'api/stuff', 
    params: { 
     date: $filter('date')(new Date(), "yyyy-MM-dd HH:mm:ss") 
    } 
); 
Verwandte Themen