将动态数据传递给mvc3中的jqplot饼图?

时间:2013-03-05 10:04:28

标签: asp.net-mvc jqplot pie-chart

我想显示一个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 个答案:

答案 0 :(得分:0)

考虑到您正在使用MVC,您可以将模型中的所有数据与关键值对列表放在一起,然后将其转换为JSON,同时将其传递给javascript。  如果您希望通过ajax完成此操作,那么您可以将请求发送到json并从控制器的Action方法获取JSON结果。

使用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.