2017-06-21 12 views
0

グラフを使用してデータベースの一部のデータを表現しようとしています。これまでのところ、私はデータベースからデータを取得していない、私はWebメソッドを介してデータを提供するだけの問題を抱えています。私は常に404エラーを取得します。私は、私のURLに何か間違っていると思うが、私は今何時間も試しているし、それを解決する方法を見つけることができません。だからここChart.jsグラフのサーバー側データを提供

は私のコードです:

マイIndex.asmx

namespace WebApplication1.Views.Home 
{ 
    /// <summary> 
    /// Summary description for Index 
    /// </summary> 
    [WebService(Namespace = "http://tempuri.org/")] 
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] 
    [System.ComponentModel.ToolboxItem(false)] 
    // To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line. 
    [System.Web.Script.Services.ScriptService] 
    public class Index : System.Web.Services.WebService 
    { 
     [WebMethod] 
     public static List<string> getChartData() 
     { 
      var returnData = new List<string>(); 

      var chartLabel = new StringBuilder(); 
      var chartData = new StringBuilder(); 
      chartLabel.Append("["); 
      chartData.Append("["); 

      for (int i = 0; i <= 10; i++) 
      { 


       chartLabel.Append(string.Format("'{0}',", new DateTime(2017, 7, i + 1).ToString())); 
       chartData.Append(string.Format("{0},", (i * 2).ToString())); 


      } 

      chartData.Length--; //For removing ',' 
      chartData.Append("]"); 
      chartLabel.Length--; //For removing ',' 
      chartLabel.Append("]"); 

      returnData.Add(chartLabel.ToString()); 
      returnData.Add(chartData.ToString()); 
      return returnData; 
     } 
    } 
} 

マイIndex.cshtml:

<form id="form1" runat="server"> 
    <div> 
     <canvas id="Chart" width="600" height="500"></canvas> 
    </div> 
</form> 
<script type="text/javascript"> 
$(function() { 
      var ctx = document.getElementById("Chart").getContext('2d'); 
      $.ajax({ 

       url: "Index.asmx/getChartData", 
       type: "POST", 
       contentType: "application/json; charset=utf-8", 
       dataType: "json", 
       success:function(response) 
       { 
        var chartLabel = eval(response.d[0]); //Labels 
        var chartData = eval(response.d[1]); //Data 
        var barData = { 
         labels: chartLabel, 
         datasets: [ 
          { 
           label: 'July Sales', 
           fillColor: "rgba(225,225,225,0.2)", 
           strokeColor: "Blue", 
           pointColor: "rgba(220,220,220,1)", 
           pointStrokeColor: "Green", 
           pointHighlightFill: "#fff", 
           pointHighlightStroke: "rgba(220,220,220,1)", 
           data: chartData 
          } 
         ] 
        }; 
        var skillsChart = new Chart(ctx).Line(barData); 
       } 

      }); 
     } 
     ); 
</script> 

私はどこ見当がつかないという理由だけで、いくつかのより多くのコードを投稿しました私は間違いを犯した。 Btw。両方のファイルが同じディレクトリにあります。

これは私が得たエラーです:POST http://localhost:50337/Home/Index.asmx/getChartData 404(見つかりません)

はそれを修正する方法を誰を知っていますか?

+0

まだ答えを探していますか?私は正確な問題を抱えてそれを解決しましたが、違いはAJAXではなく、ビューバックにチャートを渡してビューで受け取ったことです。それがあなたにとって有益なのかどうかわからない! –

答えて

0

メソッドシグネチャから 'static'キーワードを削除してみます。

+0

ありがとうございますが、これはうまくいかなかった – stl

関連する問題