Casablanca: MVC und ajax

Hallo Forum,

kennt sich hier jemand mit MVC und ajax aus? Ich habe da ein Problem mit der Datenübertragung von MVC zum ajax. Ich habe ein Array, das u.a. Daten in Form von "04.06.2013 06:57:00.000" beinhaltet. Nach der Übertragung des Array an Ajax siehen sie dann so aus: "/Date(1370314020000)/". Kann das jemand versehen oder hat einer eine Lösung?

Danke im Voraus.
Gruß

  1. @@Casablanca:

    nuqneH

    kennt sich hier jemand mit MVC und ajax aus?

    Ja, Cheatah. Nur ist der leider nicht mehr hier.

    Qapla'

    --
    „Talente finden Lösungen, Genies entdecken Probleme.“ (Hans Krailsheimer)
  2. Meine Herren!

    Ich habe ein Array, das u.a. Daten in Form von "04.06.2013 06:57:00.000" beinhaltet. Nach der Übertragung des Array an Ajax siehen sie dann so aus: "/Date(1370314020000)/". Kann das jemand versehen oder hat einer eine Lösung?

    Sind die Einträge in dem PHP-Array wirklich Zeichenketten? Oder stehen da Datums-Objekte drin?
    Was ist die Ausgabe von var_dump( $deinArray )? $deinArray musst du entsrepchend ersetzen.

    Das sieht für mich so aus, als findet da eine automatische Konvertierungen zu einem String statt, die du nicht erwartet hast. Das kann passieren wenn man Objekte in einen String-Kontext bringt.

    --
    “All right, then, I'll go to hell.” – Huck Finn
  3. Schau mal hier:

    http://stackoverflow.com/questions/206384/how-to-format-a-microsoft-json-date

    Schaut so aus, als ob die Zahl den Timestamp darstellt.

    Viele Grüße

    1. Hi,

      diesen Link kenne ich bereits. Leider hat er nichts geholfen.

      Gruß

  4. hi,

    [..] Ich habe da ein Problem mit der Datenübertragung von MVC zum ajax.

    Bechreibe das mal bitte ein bischen ausführlicher, was Du da machst.

    MfG

    1. Hi,

      es gibt eine Methode in MVC, die von Ajax aufgerufen wird. Diese gibt eine List von Daten, in der sich ein Datum befindet zurück.

        
         return new JsonResult { Data = myList };  
      
      

      Genau dieses Datum kommt dann so auf die andere Seite an, wie beschrieben.

      Gruß

      1. Tach!

        es gibt eine Methode in MVC, die von Ajax aufgerufen wird.

        MVC ist ein Programmiermuster (eine ganz allgemeine Beschreibung, wie eine Lösung strukturell aussehen könnte) und Ajax ist der Name einer Technik zum Datenübertragen im Browser. Wenn du diese sehr allgemeinen Begriffe verwendest, solltest du näher spezifizieren, in welchem Umfeld du bist.

        return new JsonResult { Data = myList };

          
        Diese fälschlicherweise mit Javascript ausgezeichnete C#-Codezeile offenbart nun, wo du dich befindest. Du meinst ASP.NET MVC.  
          
        
        > > > Ich habe ein Array, das u.a. Daten in Form von "04.06.2013 06:57:00.000" beinhaltet. Nach der Übertragung des Array an Ajax siehen sie dann so aus: "/Date(1370314020000)/".  
          
        Wenn du ein Datum in der Form hast, dann wird das wohl ein String sein. Ein solcher würde nicht einfach in die beschriebene Form umgewandelt. Wenn du allerdings Objekte vom Typ DateTime meinst, nun, Ajax kennt wohl keine Repräsentationsform von Datumswerten. Microsoft macht daraus was eigenes, damit es Datumswerte von Strings unterscheiden kann. Wenn du das so nicht magst, musst du deinerseits was eigenes machen, was JsonResult-Klasse nicht umwandelt. Zum Beispiel dein Array mit den DateTime-Objekten in ein Array mit Strings oder Integerwerten konvertieren - so wie du das eben brauchst.  
          
          
        dedlfix.
        
  5. Moin,

    Kann das jemand versehen oder hat einer eine Lösung?

    hier ist es dokumentiert: Mapping .NET types to JSON Types

    Eine Lösung hast du schon, die von Microsoft. Eine andere wäre Json.NET.

    Alternativ könntest du auch auf DateTime verzichten und stattdessen einen Timestamp nutzen, also Sekunden serialisieren und übertragen. Weiterhin könntest du auch ISerializable implementieren und dabei DateTime anders ausgeben. Es gibt noch mehr Möglichkeiten aber das eigentliche Problem betrifft die Clientseite: wie macht man daraus ein Date-Objekt.

    Gruß

    1. Moin Jörg,

      Es gibt noch mehr Möglichkeiten aber das eigentliche Problem betrifft die Clientseite: wie macht man daraus ein Date-Objekt.

      Moment.js to the rescue!

      Das ist wohl die Standard-Bibliothek beim Arbeiten mit Zeit-Daten.

      LG,
       CK