【问题标题】:Retrieving data from Model or ViewModel for a Chart in ASP.NET MVC 3 Razor using Chart Helpers使用图表助手从 ASP.NET MVC 3 Razor 中的图表的模型或视图模型中检索数据
【发布时间】:2011-11-16 11:39:00
【问题描述】:

我想使用下面的代码在 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: 之后放置什么代码,或者在控制器和视图中的任何位置放置一些代码才能从数据库中检索数据?我尝试了实体框架上下文...但它不起作用。

谢谢

【问题讨论】:

  • 这取决于您的表架构、您的数据在此 SQL 数据库中的组织方式以及您希望使用的数据访问技术。

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


【解决方案1】:

这是我用来从 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;
}

【讨论】:

    【解决方案2】:

    下面的链接解释了如何使用“DataBindTable”方法来绑定模型中的数据。在这里,数据被框在模型内部。您可以在“GetChartData”方法内的模型中从sql server获取数据。

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

    希望这会有所帮助!

    【讨论】:

    • 我确实尝试过这个网站...但是当我输入这部分时: var model = new ChartModel(); ChartModel 用红色下划线...我必须添加参考或调用什么吗?
    • 你是否在“Models”文件夹下添加了模型类“ChartModel”?
    • 哦等等...我太傻了...ChartModel 是任何模型的名称...我已经有 15 个模型...我必须将“ChartModel”替换为一个模型的名称我的模型,对吧?
    • 是的。你说的对。您必须将其替换为您拥有的模型之一。希望这对你有帮助!
    • 等等...我发现了...有些东西不起作用:var data = model.GetChartData();当我输入我的模型名称代替“模型”然后输入“.GetChartData”时,.GetChartData()下面有一条红线,现在为什么会发生这种情况?
    猜你喜欢
    • 2014-01-07
    • 1970-01-01
    • 2015-07-07
    • 1970-01-01
    • 1970-01-01
    • 2012-06-13
    • 2011-07-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多