amcharts の株価チャートを使用しています。次のコードを使用すると、グラフが正常に読み込まれ、すべてが機能します。
var chart = AmCharts.makeChart("chartdiv", {
"type": "stock",
"theme": "light",
"dataSets": [{
"title": "Values",
"color": "#b0de09",
"fieldMappings": [{
"fromField": "value",
"toField": "value"
}, {
"fromField": "average",
"toField": "average"
}],
"dataProvider": @Html.Raw(ViewBag.ChartData),
"categoryField": "date"
}],
...
そして私のコントローラー:
public class ChartController : Controller
{
public IActionResult Index()
{
ViewBag.ChartData = JsonConvert.SerializeObject(GetChartData ());
return View();
}
}
ただし、次のコードを追加して株式イベントを追加しようとすると、1) チャートが表示されなくなり、2) コントローラーの GetChartEvents アクションが呼び出されないため、明らかにデータが返されません。
var chart = AmCharts.makeChart("chartdiv", {
"type": "stock",
"theme": "light",
"dataSets": [{
"title": "Values",
"color": "#b0de09",
"fieldMappings": [{
"fromField": "value",
"toField": "value"
}, {
"fromField": "average",
"toField": "average"
}],
"dataProvider": @Html.Raw(ViewBag.ChartData),
"categoryField": "date",
"eventDataLoader": {
"url": @Url.Action("GetChartEvents", "ChartController"),
"format": "json",
"showCurtain": true,
"showErrors": true,
"async": true
}
}],
...
そしてコントローラーで
public class ChartController : Controller
{
…
[HttpGet]
public IActionResult GetChartEvents()
{
ChartEvent[] events = new ChartEvent[3];
events[0] = new ChartEvent(new DateTime(2007, 12, 17));
events[1] = new ChartEvent(new DateTime(2008, 10, 27));
events[2] = new ChartEvent(new DateTime(2009, 07, 06));
return Json(events);
}
}
ChartEvent は私自身のクラスですが、GetChartEvents が呼び出されることはないため、返されるデータがどのようにフォーマットされるかは問題ではないと思います。ビューで、私が置き換えると
"url": @Url.Action("GetChartEvents", "ChartController"),
と
"url": "/Chart/GetChartEvents",
GetChartEvents が呼び出されることはありませんが、グラフ自体は表示されます。イベントをViewBagに配置しようとしましたが、それも機能しません
"dataProvider": @Html.Raw(ViewBag.ChartData),
"stockEvents": @Html.Raw(ViewBag.ChartEvents)
最後のメモ (およびサニティ チェック!) として、@Html.Raw(ViewBag.ChartEvents) の内容をページに出力すると、次のように表示されます。
[{"date":"Date(2007,12,17)","type":"arrowUp","backgroundColor":"#00CC00","graph":"g1","description":" "}, {"date":"Date(2008,10,27)","type":"arrowUp","backgroundColor":"#00CC00","graph":"g1","description":" "}, { "date":"Date(2009,07,06)","type":"arrowUp","backgroundColor":"#00CC00","graph":"g1","description":" "}]
どんな助けや洞察も大歓迎です。