从 ViewData 对象 .Net Core 填充 Javascript 中的 HighCharts 数据集
Populate HighCharts Dataset in Javascript from ViewData Object .Net Core
我正在尝试在 .Net 中使用 HighCharts,但在填充 HighChart 在图表上使用的数据集时遇到了困难。最初我是在视图中使用以下内容进行操作的:
new BubbleSeries
{
Data = (ViewData["bubble1"] as List<BubbleSeriesData>)
},
这可行,但它让我不得不在 Razor 视图中完成 HighCharts 的其余格式设置。 HighCharts 没有很多关于在 .Net 中格式化不同图表对象的广泛示例,更多地依赖于利用 javascript。
我想我会尝试一种不同的方法,并在视图的脚本标记中构建图表。我遇到的问题是如何将“ViewData”分配给数据对象。
我该如何替换它:
series: [{
data: [
{ x: 95, y: 95, z: 13.8, name: 'BE', country: 'Belgium' },
{ x: 86.5, y: 102.9, z: 14.7, name: 'DE', country: 'Germany' },
{ x: 80.8, y: 91.5, z: 15.8, name: 'FI', country: 'Finland' },
{ x: 80.4, y: 102.5, z: 12, name: 'NL', country: 'Netherlands' },
{ x: 80.3, y: 86.1, z: 11.8, name: 'SE', country: 'Sweden' },
{ x: 78.4, y: 70.1, z: 16.6, name: 'ES', country: 'Spain' },
{ x: 74.2, y: 68.5, z: 14.5, name: 'FR', country: 'France' },
{ x: 73.5, y: 83.1, z: 10, name: 'NO', country: 'Norway' },
{ x: 71, y: 93.2, z: 24.7, name: 'UK', country: 'United Kingdom' },
{ x: 69.2, y: 57.6, z: 10.4, name: 'IT', country: 'Italy' },
{ x: 68.6, y: 20, z: 16, name: 'RU', country: 'Russia' },
{ x: 65.5, y: 126.4, z: 35.3, name: 'US', country: 'United States' },
{ x: 65.4, y: 50.8, z: 28.5, name: 'HU', country: 'Hungary' },
{ x: 63.4, y: 51.8, z: 15.4, name: 'PT', country: 'Portugal' },
{ x: 64, y: 82.9, z: 31.3, name: 'NZ', country: 'New Zealand' }
]
}]
有了这个:
series: [{
data: [
(ViewData["bubble1"] as List<BubbleSeriesData>)
]
}]
这是一个工作示例:
型号:
public class BubbleSeriesData {
public int x { get; set; }
public int y { get; set; }
public int z { get; set; }
public string name { get; set; }
public string country { get; set; }
}
查看数据:
List<BubbleSeriesData> ll = new List<BubbleSeriesData> { new BubbleSeriesData { x = 1, y = 1, z = 1, name = "n1", country = "c1" }, new BubbleSeriesData { x = 2, y = 2, z = 2, name = "n2", country = "c2" } };
ViewData["bubble1"] = JsonConvert.SerializeObject(ll);
系列:
series: [{
data:@Html.Raw(JsonConvert.DeserializeObject(ViewData["bubble1"].ToString()))
}],
我正在尝试在 .Net 中使用 HighCharts,但在填充 HighChart 在图表上使用的数据集时遇到了困难。最初我是在视图中使用以下内容进行操作的:
new BubbleSeries
{
Data = (ViewData["bubble1"] as List<BubbleSeriesData>)
},
这可行,但它让我不得不在 Razor 视图中完成 HighCharts 的其余格式设置。 HighCharts 没有很多关于在 .Net 中格式化不同图表对象的广泛示例,更多地依赖于利用 javascript。
我想我会尝试一种不同的方法,并在视图的脚本标记中构建图表。我遇到的问题是如何将“ViewData”分配给数据对象。
我该如何替换它:
series: [{
data: [
{ x: 95, y: 95, z: 13.8, name: 'BE', country: 'Belgium' },
{ x: 86.5, y: 102.9, z: 14.7, name: 'DE', country: 'Germany' },
{ x: 80.8, y: 91.5, z: 15.8, name: 'FI', country: 'Finland' },
{ x: 80.4, y: 102.5, z: 12, name: 'NL', country: 'Netherlands' },
{ x: 80.3, y: 86.1, z: 11.8, name: 'SE', country: 'Sweden' },
{ x: 78.4, y: 70.1, z: 16.6, name: 'ES', country: 'Spain' },
{ x: 74.2, y: 68.5, z: 14.5, name: 'FR', country: 'France' },
{ x: 73.5, y: 83.1, z: 10, name: 'NO', country: 'Norway' },
{ x: 71, y: 93.2, z: 24.7, name: 'UK', country: 'United Kingdom' },
{ x: 69.2, y: 57.6, z: 10.4, name: 'IT', country: 'Italy' },
{ x: 68.6, y: 20, z: 16, name: 'RU', country: 'Russia' },
{ x: 65.5, y: 126.4, z: 35.3, name: 'US', country: 'United States' },
{ x: 65.4, y: 50.8, z: 28.5, name: 'HU', country: 'Hungary' },
{ x: 63.4, y: 51.8, z: 15.4, name: 'PT', country: 'Portugal' },
{ x: 64, y: 82.9, z: 31.3, name: 'NZ', country: 'New Zealand' }
]
}]
有了这个:
series: [{
data: [
(ViewData["bubble1"] as List<BubbleSeriesData>)
]
}]
这是一个工作示例:
型号:
public class BubbleSeriesData {
public int x { get; set; }
public int y { get; set; }
public int z { get; set; }
public string name { get; set; }
public string country { get; set; }
}
查看数据:
List<BubbleSeriesData> ll = new List<BubbleSeriesData> { new BubbleSeriesData { x = 1, y = 1, z = 1, name = "n1", country = "c1" }, new BubbleSeriesData { x = 2, y = 2, z = 2, name = "n2", country = "c2" } };
ViewData["bubble1"] = JsonConvert.SerializeObject(ll);
系列:
series: [{
data:@Html.Raw(JsonConvert.DeserializeObject(ViewData["bubble1"].ToString()))
}],