Передать динамические данные в круговую диаграмму jqplot в mvc3?

Я хочу отобразить круговую диаграмму jqplot, я могу отображать ее со статическими данными, но я хочу отображать динамические данные из базы данных... для этого я подключился к своей базе данных и связал данные со списком, а теперь как я могу назвать этот список с моей точки зрения?

$(document).ready(function(){
var data = [
['Heavy Industry', 12],['Retail', 9], ['Light Industry', 14], 
['Out of home', 16],['Commuting', 7], ['Orientation', 9]
];
 var plot1 = jQuery.jqplot ('chart1', [data], 
  { 
   seriesDefaults: {
    // Make this a pie chart.
    renderer: jQuery.jqplot.PieRenderer, 
    rendererOptions: {
      // Put data labels on the pie slices.
      // By default, labels show the percentage of the slice.
      showDataLabels: true
    }
  }, 
  legend: { show:true, location: 'e' }
  }
  );
  });

Теперь мое требование состоит в том, чтобы отображать те же данные из базы данных, и я связал эти данные со списком в моем контроллере, и теперь, как я могу вызвать этот список из своего представления?

1 ответ

Учитывая, что вы используете MVC, вы можете поместить все эти данные в вашу модель со списком пар ключей и затем преобразовать их в JSON при передаче в javascript. и если вы хотите, чтобы это было сделано через ajax, то вы можете отправить запрос в json и получить результат JSON из метода Action контроллера.

Используйте сериализатор Javascript для преобразования модели в Json в вашем методе действия

var data = somedata_with_KeyValuePair;
var model = new MyModel();
var serializer = new JavaScriptSerializer();
model.JsonData = serializer.Serialize(data);
return View(model);

а затем использовать это так

var data = <%= Model.JsonData %>

или если вы используете MVC 3, то может работать и следующее

@Html.Raw(Json.Encode(YourObjectContaingListOfKeyValue)) seems to do the trick.
Другие вопросы по тегам