ASP MVC 4.0(VS 2012RCでは.net4.5)を使用して、System.Web.UI.Datavisualization.Chartコントロールをページにレンダリングしようとしています。MVCページビューでWebフォームコントロールを直接使用するのは簡単/標準的な方法ではないことに気付いたので、コントローラーのアクションを使用して、ビューに表示できるグラフの画像を返そうとしています。
HomeControllerには次のものがあります。
public FileResult DataChart()
{
Chart newChart = new Chart()
{
Width = 500,
Height = 300
};
List<double> DataPoints = new List<double>();
new LogModelContainer().Measurements.Select(i => i.MU).ToList().ForEach(i => DataPoints.Add(i));
Series newSeries = new Series()
{
ChartType = SeriesChartType.Bar
};
newSeries.Points.Add(DataPoints.ToArray());
newChart.Series.Add(newSeries);
newChart.ChartAreas.Add(new ChartArea());
var returnVal = new MemoryStream();
newChart.SaveImage(returnVal);
return File(returnVal.GetBuffer(), @"image/png");
}
注:グラフのデータは、SQLデータベースにリンクされたEF 5モデルからのものです(データは実際に存在し、正しく読み込まれます)。
Index.cshtmlから次のように使用しようとしています。
<img src="/HomeController/DataChart" alt="" />
これは、CodePlexの例で使用されているものと同等のようです(MVCチャートコントロールの例CodePlexは、パラメーターをアクションに渡す必要がないことを除けば、Webで見つけました。
コードを実行すると、このグラフがあるはずのページの壊れた画像アイコンだけが表示されます。私は完全なASP初心者です(これはこのテクノロジーを使用した最初のプロジェクトです)ので、愚かなことをしている可能性は十分にあります。誰かが私に何が悪いのか教えてもらえますか?ありがとう