2013-03-26 54 views
1

我已经创建了一个C#asp.net MVC应用程序。控制器显示如下。我正在使用高图表,我想用控制器返回的内容填充图表。用控制器返回的值填充图表

下面有2个字段,星期一和星期二,我需要在下面的javascript中填充硬编码值以显示控制器返回的值;

注:我不知道,如果控制器方法的工作:((我是初学者),但我更关心的是如何填充由控制器返回的值图表

我的C#控制器;

public string timeHour() 
    { 
     var m = new MyModel(); 

     m.theTime = getAllTime(); // get all time 

     return new JavaScriptSerializer().Serialize(m); 
    } 

高级表,我有它的视图;

$(function() { 
     $('#container').highcharts({ 
      chart: { 
       type: 'areaspline' 
      }, 
      title: { 
       text: 'some title' 
      }, 
      legend: { 
       layout: 'vertical', 
       align: 'left', 
       verticalAlign: 'top', 
       x: 150, 
       y: 100, 
       borderWidth: 1, 
       backgroundColor: '#FFFFFF' 
      }, 
      xAxis: { 
       categories: [ 
        'Mon', 
        'Tue' 
       ], 
       plotBands: [{ // visualize the weekend 
        from: 4.5, 
        to: 6.5, 
        color: 'rgba(68, 170, 213, .2)' 
       }] 
      }, 

      plotOptions: { 
       areaspline: { 
        fillOpacity: 0.5 
       } 
      }, 
      series: [{ 
       name: 'John', 
       data: [3, 4] 
      }] 
     }); 
    }); 
+0

有两个问题(1)什么客户端事件导致控制器被调用? (2)'new JavaScriptSerializer()。Serialize(m);'return? – 2013-03-26 06:52:15

+0

1.)它可能是GET或POST(我想知道如何做到这一点)2.)返回类型是字符串 – 2013-03-26 07:05:42

+0

您还没有回答任何问题。 – 2013-03-26 07:07:09

回答

0

首先,我将控制器的返回类型更改从stringJsonResult。让你的控制器返回ActionResults是一个很好的MVC风格约定,它使你的代码更具描述性。

[HttpGet] 
public JsonResult timeHour() 
{ 
    var m = new MyModel(); 
    m.theTime = getAllTime(); // get all time 
    return Json(m, JsonRequestBehavior.AllowGet) 
} 

我相信GETPOST要求应为你们俩的工作。它看起来像getallTime()是幂等的(尽管这里没有显示代码),所以它看起来像GET请求应该工作。这可以在使用jQuery的做了.get() method

$(function() { 
    $.get("timeHour", null, function(result) { 
     console.log("If the GET request is successful, the Controller will return the HighCharts data:"); 
     console.log(result); 
    }, "json"); 
}); 

你将需要确保的是,JSON返回给客户端是在Highcharts喜欢的格式。现在,控制器调用成功(通过AJAX GET请求)并返回Highcharts数据,你的第二个问题都可以回答:

如何填充图表由控制器返回的值

...通过Highcharts "series.data" documentation。如果你阅读这篇文章,我想你可以想出如何改变MyModel的对象来满足你的需求。