Füllen JQuery Flot Diagramm mit Ajax und Json

Ich versuche zu verwenden die JQuery-Flot-Charts http://www.flotcharts.org/ in meiner MVC 5-Anwendung. Im moment bin ich gerade versucht, zu verstehen, wie Sie funktionieren. Ich habe dieses Beispiel-code, die erstellt ein Balkendiagramm:

$(document).ready(function () {

    $(function () {

    var data = [[0, 5],[1, 10],[2, 15],[3, 20],[4, 25],[5, 30]];
    var dataset = [{ label: "2012 Average Temperature", data: data, color: "#5482FF" }];
    var ticks = [[0, "London"], [1, "New York"], [2, "New Delhi"], [3, "Taipei"],[4, "Beijing"], [5, "Sydney"]];

    var options = {
        series: {
            bars: {
                show: true
            }
        },
        bars: {
            align: "center",
            barWidth: 0.5
        },
        xaxis: {
            axisLabel: "World Cities",
            axisLabelUseCanvas: true,
            axisLabelFontSizePixels: 12,
            axisLabelFontFamily: 'Verdana, Arial',
            axisLabelPadding: 10,
            ticks: ticks
        },

        legend: {
            noColumns: 0,
            labelBoxBorderColor: "#000000",
            position: "nw"
        },
        grid: {
            hoverable: true,
            borderWidth: 2,
            backgroundColor: { colors: ["#ffffff", "#EDF5FF"] }
        }
    };

        $.plot($("#placeholder"), dataset, options);
    });

});

Wenn ich die JQuery-Flot-Charts, würd ich brauchen zu können, ziehen Sie die Daten dynamisch per AJAX im Gegensatz zu hart codiert in meine Razor-Ansicht wie oben.

Ich habe eine Action in meinem Controller liefert die gleichen Daten wie die, die hart codiert in dem Beispiel oben

[HttpGet]
public ActionResult GetTestData()
{
     return Json(new[] { new[] { 0, 5 }, new[] { 1, 10 }, new[] { 2, 15 }, new[] { 3, 20 }, new[] { 4, 25 }, new[] { 5, 30 }, new[] { 6, 35 } },JsonRequestBehavior.AllowGet);
}

Habe ich dann geändert, der code in meinem Razor-Ansicht durch auskommentieren der Daten und Handlung fordert, und ersetzt Sie mit einem Ajax-Request

//var data = [[0, 11],[1, 15],[2, 25],[3, 24],[4, 13],[5, 18]];
//$.plot($("#placeholder"), dataset, options);
$.ajax({
            type: "GET",
            url: '@Url.Action("GetTestData")',
            error: function () {
                alert("An error occurred.");
            },
            success: function (data) {
                $.plot($("#placeholder"), dataset, options);
            }
        });

Diesem Ajax-Request sollte dann rufen die GetTestData Aktion in meinem Controller und der Rückkehr der Json-Daten. Jedoch, ich habe einen break-point auf meinem GetTestData Aktion, debugged, und die Handlung wird nie aufgerufen, daher die Daten werden nie zurückgegeben, um erstellen Sie das Balkendiagramm.

Könnte jemand bitte helfen Sie mir, herauszufinden, warum meine Aktion ist nicht von mir den Ajax-code.

Danke für jedes feedback.

Sie haben eine variable namens mismatach in Ihrem success - handler, gibt es data rufen Sie $.plot mit dataset...
Darüber hinaus, wenn Ihre Aktion nicht aufgerufen wird, tut @Url.Action("GetTestData") zeigen Sie auf die richtige URL? Wenn Sie Ihre javascript-debugger, der unter den Netzwerk-tab Typ, hat die $.ajax Anfrage genannt? Hat es Antwort, 404, 403, 500...?
Vielen Dank für deine Hilfe, Mark. Ich dachte, die Lösung und es gepostet unten.

InformationsquelleAutor tcode | 2014-10-06

Schreibe einen Kommentar