2011-09-13 56 views
1

我想用下面的代碼(感謝DotNetJalps)來創建在MVC 3剃刀的圖形圖表:使用圖表助手檢索從模型或視圖模型數據在ASP.NET MVC 3剃刀圖表

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:或者在控制器和視圖中的任何位置使用一些代碼來檢索數據庫中的數據?我嘗試了實體框架上下文...但它沒有工作。

由於

+1

這將取決於你的表的模式,以及如何您的數據組織在這個SQL數據庫中以及你想使用的數據訪問技術。 –

回答

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

希望這有助於!

+0

我確實試過這個網站......但是當我輸入這個零件時: var model = new ChartModel(); ChartModel以紅色加下劃線...我必須添加一個引用或調用某些東西嗎? – perambulator747

+0

您是否在「模型」文件夾下添加了模型類「ChartModel」? – Praveen

+0

哦,等等......我很愚蠢...... ChartModel是任何模型的名稱......我已經有15個模型......我必須用我的模型之一的名稱替換「ChartModel」,對吧? – perambulator747

1

這裏是我使用的是什麼使從從的DbContext EF圖表....

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; 
}