2012-06-20 103 views
1

我在控制器中传递一个数组到一个视图中的javascript时遇到了一些麻烦。 我正在使用ASP .Net MVC3,我试图用数据库中的数据做一些图表/图形,我发现HighCharts的JavaScript,并试图与它合作。从控制器到Javascript传递数组

这里的例子:

$(function() { 
var chart; 
$(document).ready(function() { 
    chart = new Highcharts.Chart({ 
     chart: { 
      renderTo: 'container', 
      plotBackgroundColor: null, 
      plotBorderWidth: null, 
      plotShadow: false 
     }, 
     title: { 
      text: 'Browser market shares at a specific website, 2010' 
     }, 
     tooltip: { 
      formatter: function() { 
       return '<b>'+ this.point.name +'</b>: '+ this.percentage +' %'; 
      } 
     }, 
     plotOptions: { 
      pie: { 
       allowPointSelect: true, 
       cursor: 'pointer', 
       dataLabels: { 
        enabled: true, 
        color: '#000000', 
        connectorColor: '#000000', 
        formatter: function() { 
         return '<b>'+ this.point.name +'</b>: '+ this.percentage +' %'; 
        } 
       } 
      } 
     }, 
     series: [{ 
      type: 'pie', 
      name: 'Browser share', 
      data: [ 
       ['Firefox', 45.0], 
       ['IE',  26.8], 
       ['Chrome',  12.8], 
       ['Safari', 8.5], 
       ['Opera',  6.2], 
       ['Others', 0.7] 
      ] 
     }] 
    }); 
}); 

}); 

我做了这个类:

public class RegistoPie 
{ 
    public string na { get; set; } 
    public double da { get; set; } 


    public RegistoPie(string n, double d) { 

     na = n; 
     da = d; 

    } 
} 

我送这个对象的视图试图填补在JavaScript中数据变量:

var pie = new [] { new RegistoPie("papa",20.0), new RegistoPie("pepe",50.0) }; 

但它的返回类似于:

[{"na":"papa","da":20},{"na":"pepe","da":50}]; 

所以它不是相同的语法在JavaScript 数据变量,它只有:

[[string,double], [,] , ... ] 

帮助的人? 泰, 埃尔德

在控制器

回答

2

ViewBag.Array = new[] { new RegistoPie("papa", 20.0), new RegistoPie("pepe", 50.0) }; 

在查看:

@{ 
    var myArray = ViewBag.Array as TestMVC.Controllers.RegistoPie[]; 

    for (int i = 0; i < myArray.Length; i++) 
    { 
     var item = myArray[i]; 
    <text> ['@item.na', @item.da] @((myArray.Length - 1) != i ? "," : "")</text> 
    } 
} 
+0

泰:d是非常有益的 –

相关问题