MVC-3 AJAX Post, eine Liste mit Objekten gefüllt, aber Objekte, Eigenschaften sind Leer

Ich habe Folgendes problem:

Auf eine Schaltfläche-Klicken Sie auf ich nach ein paar Daten auf dem server.
Mein Action sieht so aus:

public ActionResult Accept(List<MyViewModel> entries)
{
    //here entries HAS 2 MyViewModel-Instances in it.
    //The entries are not null, but the values of the instances are!
    //entries[0].ParamA is null
}

Wo die MyViewModel sieht wie folgt aus:

public class MyViewModel
{
    public string ParamA { get; set; }
    public string ParamB { get; set; }
}

Und den AJAX-Aufruf ist der folgende:

var myEntries = { entries: [{ ParamA: "A", ParamB: "B" }, { ParamA: "C", ParamB: "D" }] };

$.ajax({
    type: 'POST',
    url: url,
    cache: false,
    data: myEntries,
    dataType: 'text' });

Was ich schon versucht, das zu tun:

  • Geändert Datentyp 'json'
  • verwendet: traditionelle: true
  • versuchte var myEntries = JSON.stringify(...);
  • versuchte var myEntries = { entries : [JSON.stringify({ ... }), JSON.stringify({ ... })] };
  • gleiche wie oben, aber mit jQuery.param(..., true);
  • Verwendung von IEnumerable oder MyViewModel[] anstelle der Liste.
  • Eine BELIEBIGE Kombination der oben

Was mache ich hier falsch?

Danke Ihnen sehr im Voraus für die Hilfe!

BEARBEITEN

Meine (Razor)Sicht nicht von Interesse ist, in diesem moment, wie es hat nichts damit zu tun. Ich bin NICHT mit HTML.TextBoxFor (oder ähnliche) Methoden zum füllen der myEntries-Variable. Es ist tatsächlich gefüllt dynamisch (weil es gibt viele, viele Auflagen).
Zum Wohle der Frage (und meine eigenen Tests), die ich hart codiert die variable. 🙂

  • Können Sie post-code Ihrer (Razor)anzeigen?
  • Meine Ansicht hat nichts Interessantes. Ich clearified es in meiner Frage. Siehe den EDIT-Abschnitt
  • Ich habe die Antwort! Ich poste sobald ich kann (warten 8 Stunden...)
  • Was ist die Antwort? 🙂
  • Siehe meine Antwort unten. (Kann ich markieren Sie es als angenommen, morgen ;))
InformationsquelleAutor Shion | 2012-04-11
Schreibe einen Kommentar