私はasp.net mvc3を初めて使用し、MVC3 razorのChartのstackoverflowで多くの投稿を読んでいます。
ただし、このためのチャートを作成できませんでした。基本的にこれは私のSQLクエリです
SELECT COUNT(RequestStatus) AS Expr1, RequestStatus
FROM Request
GROUP BY RequestStatus
これまでのところ、私のコントロール ビューでは、これが私のコードです。
public ActionResult RequestReport()
{
var result = from p in db.Requests
group p by p.RequestStatus into pgroup
let count = pgroup.Count()
orderby count
select new { Count = count, RequestStatus = pgroup.Key }.ToString();
var x = new [] {result};
Chart chart = new Chart(600, 400)
.AddSeries(yValues: x , yFields:"Count")
.AddTitle("Request Statistic");
this.ViewBag.Chart = chart;
return View();
}
およびビューで:
@ViewBag.Chart.Write()
この問題を解決するのを手伝ってください。これに関する簡単なチュートリアルが見つかりませんでした。
コントローラーのコードにいくつかの変更を加えました。
using (var db = new ITAMMVCDBEntities())
{
var rs = db.Requests.GroupBy(o=>o.RequestStatus).ToList();
var result = from o in db.Requests
group o by o.RequestStatus
into g
select new
{
result = g.Count()
};
Chart chart = new Chart(600, 400)
.AddSeries(
xValue: rs.Select(x=>x.Key).ToArray() ,
yValues: result.ToArray()
)
.AddTitle("Request Statistic");
this.ViewBag.Chart = chart;
return View();
}
実行時にこのエラーメッセージが表示されるようになりました
Series data points do not support values of type <>f__AnonymousType1`1[System.Int32] only values of these types can be used: Double, Decimal, Single, int, long, uint, ulong, String, DateTime, short, ushort.
グループごとに表示されるため、xValueは問題ないと思いますが、各グループの値を表示するyValueに問題があります