2 Stimmen

Asp.net MVC Ajax Iteration

Ich gebe ein Objekt an meine Ansicht zurück, indem ich $.getJSON verwende. Das Objekt enthält eine Anzahl von Listen, über die ich iterieren muss. Wie kann das gemacht werden? Mein bisheriger Code lautet:

$.getJSON("/Home/GetData",
        function (data) {
            $.each(data, function (index) {
                //Daten hier für jede Liste im Objekt zugreifen?
            });
        });

Danke.

0voto

Brian Mains Punkte 50145

Bei der Verwendung von $.each sieht die Signatur wie folgt aus:

$.each(data, function (index, item) {
    //auf die Daten hier für jede Liste im Objekt zugreifen?
});

Das bedeutet, dass auf das Element direkt zugegriffen werden kann. Außerdem denke ich, dass eine Liste als Array nach oben geschoben werden sollte, damit Sie beliebig viele $.each-Anweisungen haben können, die Sie benötigen. Das nächste innere Array wäre über verfügbar:

$.each(item.SubList, function(si, sitem) {

});

Wenn Sie die Datenstruktur posten, könnten wir mehr helfen. Auch, ist das Objekt, das Sie zurückgeben, eine anonyme Klasse oder stark typisiert? Geben Sie einen JsonResult zurück?

Hoffe das hilft.

0voto

Robert Koritnik Punkte 100480

Wenn ich verstehe, was du hier fragst, erhältst du ein JSON-Objekt dieser Form zurück:

// Ergebnis
{
    people: [{...}, {...}, ... , {...}],
    places: [{...}, {...}, ... , {...}],
    ...
}

Du solltest zuerst über dein zurückgegebenes JSON-Objekt iterieren und dann über die einzelnen Elemente jeder Liste iterieren. Etwas in dieser Art:

$.getJSON("/Home/GetData", function (data) {
    // Über Listen in einem Objekt iterieren
    for(var list in data)
    {
        // Die Variable list enthält den Namen der Liste (z.B. "people")
        // Über Listenelemente iterieren
        $.each(data[list], function (index) {
            // Mach etwas mit diesem Listenelement
        });
    }
});

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X