pass json-Daten vom controller zum view

Teilansicht :

var dataa;
    $.ajax({
        url: ServerUrl + '/Dashboard/GetData',
        type: 'POST',
        cache: false,
        dataType: 'text',
        async: true,
        error: function (xhr) {
            //alert('Error: ' + xhr.statusText);
        },
        success: function (result) {
            debugger;
            dataa = result;
            var chart = c3.generate({
                data: {
                    type: 'bar',
                    json: [
                        dataa
                    ],
                    keys: {
                        x: 'indicator',
                        value: ['total']
                    }
                },
                axis: {
                    x: {
                        type: 'category'
                    }
                },
                bar: {
                    width: {
                        ratio: 0.5
                    }
                }
            });
        }
    });

Controller Json-code

public string GetData()
{
return "{ 'indicator': 'X', 'total': 100 },{ 'indicator': 'Y', 'total': 200 },{ 'indicator': 'Z', 'total': 300 }";
}

Wenn ich den obigen code, es funktioniert nicht, aber wenn ich den pass json-Daten wie in diese JS-Fiddle link, es funktioniert. Bin ich vorbei an der JSON-Daten nicht korrekt vom controller.?

Bitte helfen.

  • Seine nicht gültig (Ihre Rückgabe eines string, nicht als json) - es müsste [{indicator: 'X", total: 100}, {...}]. Sie wäre besser dran, erstellen einer Auflistung von Objekten mit Eigenschaften indicator und total und dann return Json(myCollection); so seine Gültigkeit.
  • ist dies eine gültige Zeichenfolge zurückgeben, " { \"Anzeige\": \"X\", \"total\": \"100\" },{ \"Kennzeichen\": \"Y\", \"total\": \"200\" },{ \"Kennzeichen\": \"Z\", \"total\": \"300\" }";
  • Ich habe nur um es zu testen mit dem hardcoded json-Daten vom controller. Bitte helfen Sie mir mit der gleichen
  • Sie müssten, um es zu testen. Aber es ist ein string, nicht als json. Verwenden public JsonResult GetData() return Json(....) }` zurückkehren gültige json-Daten. Auch Sie ajax-option muss dataType: 'json', (nicht 'text')
InformationsquelleAutor user2998990 | 2015-03-18
Schreibe einen Kommentar