2017-08-12 1 views
1

ResultData ist eine Liste von CommandModel-Objekten.Ajax-Erfolgsaufruf gibt Json-Liste von Objekten zurück - kann nicht auf Eigenschaften zugreifen

[ { "Command": "Blueprint", "Count": 77 }, { "Command": "Template", "Count": 188 }, { "Command": "Test", "Count": 78 } ]  

Das Objekt, das es sieht so aus, zurückgegeben wird

public class CommandModel 
{ 
    public string Command {get; set;} 
    public int Count {get; set;} 
}  

Ich versuche, die Objekte auf Daten zuzugreifen, die Punkteigenschaft Notation, wie in diesem Video (https://www.youtube.com/watch?v=7oUZXuI7OgQ).

 $("#btn").click(function() { 
      $.ajax({ 

       url: "http://localhost:6023/external", 
       type: "GET", 
       accept: "application/json", 
       dataType: 'json', 
       success: function (resultData) { 
        $.each(resultData, function (key, value) { 
         var command = value.command; // returns undefined 
         var count = value.count; // returns undefined 
         $("tbl").append("<tr><td>" + command + "</td><td>" + count + "</td></tr>") 
        }) 
       }, 

       error: function (e) { 
        alert("something broke"); 
       } 
      }) 

Zur Laufzeit der ersten Iteration, sehen die Variablen wie folgt aus:

Key = 0 
Value = Object {Command:"Blueprint", Count:77} 

nicht sicher, was ich hier fehlt.

+2

Javascript ist Groß-und Kleinschreibung. Versuchen Sie 'var command = value.Command;' usw. –

+0

@KelvinSherlock Doh, das war es. Daten werden jetzt korrekt abgerufen, aber nicht korrekt in der Tabelle gespeichert. Wenn es nicht eine Sache ist, ist es eine andere :) Bitte zögern Sie nicht, als Antwort einzureichen, und ich werde glücklich akzeptieren. –

Antwort

1

Du Klein statt Versalien verwenden.

In Ihrer Klasse haben Sie

public class CommandModel 
{ 
    public string Command {get; set;} 
    public int Count {get; set;} 
} 

So im Skript Comand statt comand verwenden. Gleicher Fall in Count

$.each(resultData, function (key, value) { 
        var command = value.Command; // Change here 
        var count = value.Count; // Change here 
        $("tbl").append("<tr><td>" + command + "</td><td>" + count + "</td></tr>") 
       }) 
0

versuchen

$.each(resultData, function (value) { ... } 
+0

mit diesem ersten Iterationswert = 0 –

Verwandte Themen