2017-06-21 35 views
0

我想用圖表來表示來自數據庫的一些數據。到目前爲止,我沒有從數據庫獲取數據,我有問題只是通過Web方法提供數據。我總是得到一個404錯誤。我認爲我的網址存在問題,但我正在嘗試幾個小時,無法找出解決方法。爲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> 

我張貼更多的代碼,只是因爲我不知道在哪裏我犯了我的錯誤。順便說一句。這兩個文件都在同一個目錄中。

這是我得到的錯誤:POST http://localhost:50337/Home/Index.asmx/getChartData 404(未找到)

有誰知道如何解決它?

+0

你還在尋找答案?我遇到了確切的問題並解決了它,不同之處在於我不在AJAX中,我將圖表傳遞給viewbag並在View中接收。不知道它是否對你有幫助! –

回答

0

嘗試從方法簽名中刪除'static'關鍵字。

+0

謝謝,但這沒有奏效 – stl