我在将一个数组从控制器传递到视图中的javascript时遇到了一些麻烦。 我正在使用ASP .Net MVC3,我正在尝试用数据库中的数据制作一些图表/图形,我发现了HighCharts 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], [,] , ... ]
帮助任何人?! 泰, 埃尔德
答案 0 :(得分: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>
}
}