2010-02-18 11 views
7

Sto cercando di imparare come usare Flot, e penso che il tuo esempio sia un codice molto bello, semplice e comprensibile, quindi ho cercato di implementarlo, ma ecco il mio codice nell'indice.aspx:Come utilizzare flot con jQuery in ASP.NET MVC?

$(function() { 
    $.getJSON("../../Home/JsonValues", function (data) { 
     alert('json: ' + data + ' ...'); 
     var plotarea = $("#plot_area"); 
     $.plot(plotarea, data); 
     //$.plot(plotarea,[ [[0, 0], [1, 1]] ]); 
    }); 
}); 

E qui è il codice che HomeController:

public ActionResult JsonValues() 
{ 
    //string s = "[ [[0, 0], [1, 1]] ]"; 
    //return Json(s, JsonRequestBehavior.AllowGet); 
    StringBuilder sb = new StringBuilder(); 
    sb.Append("[[0, 0], [1, 1]]"); 
    return Json("[" + sb.ToString() + "]", JsonRequestBehavior.AllowGet); 
} 

Tutto quello che sto ottenendo è un grafico vuoto, anche se quando allertare nell'indice. Ottengo i dati JSON formattati perfetti.

Cosa sto sbagliando?

risposta

11

Si consiglia di evitare di creare JSON manualmente nel controller. Prova a modificare:

public ActionResult JsonValues() 
{ 
    return Json(
     new[] { new[] { 0, 0 }, new[] { 1, 1 } }, 
     JsonRequestBehavior.AllowGet); 
} 

E nella vista:

<div id="plot_area" style="width:600px;height:300px;"></div> 

<script type="text/javascript"> 
$(function() { 
    $.getJSON('../../Home/JsonValues', function (data) { 
     $.plot($('#plot_area'), [data]); 
    }); 
}); 
</script> 
+0

wohoooo, grazie mille, che ha lavorato molto per me :) – Lina

+0

Sto anche cercando di utilizzare JSON in flot, ma in VB .net/asp.net. Ho un set di dati che viene serializzato in una stringa JSON. Come posso prendere questa stringa e inserirla in un grafico flottante? – MyHeadHurts