Передать динамические данные в круговую диаграмму 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.