2016-04-13 14 views
2

私は、私の質問のデータをChartJsのチャートutlizandoに表示しようとしています。 JSONでデータを返すにはどうすればよいですか?MVC 5とChartJsを使用する5剃刀

FaturamentoIvel.cs

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 

namespace BiDAL.Entity.Graficos 
{ 
    public class FaturamentoIvel 
    { 
     public string Operacao { get; set; } 
     public string AnoMes { get; set; } 
     public float ValorNF { get; set; } 
     public bool TradeMarketing { get; set; } 
    } 
} 

FaturamentoIvelDAL.cs

using BiDAL.Entity.Graficos; 
using System; 
using System.Collections.Generic; 
using System.Data; 
using System.Data.SqlClient; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 

namespace BiDAL.Persistence 
{ 
    public class FaturamentoIvelDAL : Conexao 
    { 
     public List<FaturamentoIvel> FindAllFaturamentoIvel() 
     { 
      try 
      { 
       OpenConnection(); 
       Cmd = new SqlCommand("SELECT Operacao, AnoMes, TradeMarketing, SUM(ValorNF) AS ValorTotal FROM dbo.FatoFaturamentoIVEL WHERE TradeMarketing = 0 GROUP BY Operacao, AnoMes, TradeMarketing ORDER BY SUM(ValorNF) DESC", Con); 

       Dr = Cmd.ExecuteReader(); 
       List<FaturamentoIvel> lista = new List<FaturamentoIvel>(); 

       while (Dr.Read()) 
       { 
        FaturamentoIvel ft = new FaturamentoIvel(); 
        ft.Operacao = Convert.ToString(Dr["Operacao"]); 
        ft.AnoMes = Convert.ToString(Dr["AnoMes"]); 
        ft.ValorNF = Convert.ToSingle(Dr["ValorNF"]); 

        lista.Add(ft); 
       } 
       return lista; 
      } 
      catch (Exception ex) 
      { 
       throw new Exception("Erro ao listar Faturamento: " + ex.Message); 
      } 
     } 


    } 
} 

マイコントローラーAdminController

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

namespace BiFrontEnd.Controllers 
{ 
    public class AdminController : Controller 
    { 
     // GET: Home 
     public ActionResult Home() 
     { 
      return View(); 
     } 


    } 
} 

マイビュー

@{ 
    ViewBag.Title = "Home"; 
    Layout = "~/Views/Template/_Layout.cshtml"; 
} 

<label>Gráfico Mês Atual</label> 
<select id="ddlOperacao"> 
    <option>Venda</option> 
    <option>Troca</option> 
    <option>Bonificação</option> 
    <option>Outras</option> 
</select> 
<button id="btnGerarGraficoMesAtual">Exibir</button> 
+1

**どのように私は、JSONのデータを返すことができます**使用? 'Json'メソッドを使用して、データのjson表現を返します。 – Shyju

+1

こんにちは、すみませんが、どうすればいいですか? –

+1

[this](http://stackoverflow.com/questions/10608198/asp-net-mvc3-returning-success-jsonresult/10608250#10608250)匿名オブジェクトを返すデータセットで置き換えます。 – Shyju

答えて

0

これはどのように動作するかの例です。 コントローラの中には、このようなものがあります。

public ActionResult Chart() 
{ 
    var Value1 = db.MYTABLE.Where(i => i.Value1); 
    var Value2 = db.MYTABLE.Where(i => i.Value2);   
    var dataForChart = new[] 
    { 
     new 
     { 
     label = "Your Label1", 
     value = Value1.Count() 
     }, 
     new 
     { 
     label = "Your Label2", 
     value = Value2.Count() 
     }     
    }; 

    var result = Json(dataForChart, JsonRequestBehavior.AllowGet); 
    return result; 

} 

あなたのJavaScriptが次のようになります。

$.get("/ControllerName/Chart", function (response) {    
    //Construct your ChartJS here.   
}); 

を置き、このそれを呼び出すためにあなたのビューで:

<canvas id="Chart" width="400" height="400"></canvas> 
+0

ChartJSを構築するとき、データは$ .get関数からの応答でなければなりません。 – error505

関連する問題