使用Chart Helpers从ASP.NET MVC 3 Razor中的Chart或ViewModel中检索数据

时间:2011-09-13 19:56:01

标签: asp.net-mvc-3 charts razor helpers

我想使用下面的代码在mvc 3 razor中创建一个图形图表(感谢DotNetJalps):

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.Helpers;

namespace CodeSimplifiedTest.Controllers
{
  public class HomeController : Controller
  {
    public ActionResult Index()
    {
        ViewBag.Message = "Welcome to ASP.NET MVC!";

        return View();
    }

    public ActionResult About()
    {
        return View();
    }

    public ActionResult DrawChart()
    {
        var chart = new Chart(width: 300, height: 200)
            .AddSeries(
                        chartType: "bar",
                        xValue: new[] { "10 Records", "20 Records", "30 Records", "40 Records" },
                        yValues: new[] { "50", "60", "78", "80" })
                        .GetBytes("png");
        return File(chart, "image/bytes");
    }
  }
}

但是

我想从SQL Server 2008 R2数据库中检索xValues和Yvalues ...我必须在xValue之后输入什么代码:和yValue:或者控制器和视图中的某些代码从数据库中检索数据?我尝试了实体框架上下文......但它没有用。

由于

2 个答案:

答案 0 :(得分:2)

以下是我用来制作来自EF的dbContext的图表....

       

public ActionResult PayorPieChart()
{
  string xx = activePhysicianID;

  ArrayList xValue = new ArrayList();
  ArrayList yValue = new ArrayList();

  XXXXXXX_MainEntities dbContext = new XXXXXXX_MainEntities();
  var results = dbContext.Payor.Where(rs => rs.PhysicianIdentity.Equals(xx));

  results.ToList().ForEach(rs => xValue.Add(rs.Identifier));
  results.ToList().ForEach(rs => yValue.Add(rs.Strength));

  var chart = new Chart(600, 300, ChartTheme.Blue);
  chart.AddSeries(chartType: "Pie", xValue: xValue, yValues: yValue);
  chart.AddTitle("Payor");
  chart.Write("png");

  return null;
}

答案 1 :(得分:0)

以下链接说明了如何使用“DataBindTable”方法绑定模型中的数据。在这里,数据在模型中构建。您可以在方法“GetChartData”中的模型中从sql server获取数据。

http://weblogs.asp.net/gunnarpeipman/archive/2010/10/10/asp-net-mvc-3-beta-built-in-support-for-charts.aspx

希望这会有所帮助!!