2009-08-26 4 views
1

Ich habe ein Objekt mit 2 ArrayList-Eigenschaften.jQuery JSON ASP.NET MVC-Zugriffsobjekt mit Array-Listeneigenschaften?

Ich gebe das Objekt als JSON in meiner JsonResult Action zurück. Der Erfolg meines AJAX-Anrufs sieht folgendermaßen aus, scheint aber nicht zu funktionieren. Was muss ich tun, um vom Objekt auf das serialisierte Array zuzugreifen?

success: function(data) { 

        var counter = 1; 
        jQuery.each(data.Test1, function() { 
         $("#DataFields" + counter).val(this); 
         counter++; 
        }); 
       }, 

Antwort

3

Eine Möglichkeit zu sehen, wie das Ergebnis aussieht, ist die Verwendung von Firebug in Mozilla. Oder die eigenständige Anwendung Fiddler.

Ich denke, dass die Klasse das ganze Objekt umschließt, so sollte es etwas Ähnliches wie folgt aussehen:

TestDTO { 
    Test1 [ 
     "value", "value 1", "value 2" 
    ], 
    Test2 [ 
     "value", "value 1", "value 2" 
    ] 
} 

Wenn Sie Test1 zugreifen möchten, dass Sie würden TestDTO.Test1 schreiben. Wenn Sie den ersten Wert in Test1 möchten würden Sie schreiben TestDTO.Test1 [0] und so weiter ...

Eine Möglichkeit, mehr Kontrolle über die Ausgabe zu erhalten, ist LINQ zu verwenden, und wählen Sie Neu:

select new { 
    MyVariable = MyValue, 
    AnotherVariable = AnotherValue 
} 

Nun wissen Sie, dass "MyVariable" auch der Name der JSON-Variablen ist.

1

Wenn ich in Situationen wie diese komme, verwende ich Firebug und irgendwo in der Erfolgsmethode zu brechen. Dann überprüfen Sie die tatsächliche Struktur der Daten und ich wette, es wird offensichtlich sein.

2

Vielleicht ist die folgende Nutzungs ?:

success: function(data) { 
    $.each(data.Test1, function(i, item) { 
     $('#DataFields' + i).val(item); 
    }); 
} 
+0

Das ist für mich schön und neu ist. Ty :) – Mickel