2013-03-26 3 views
1

Я создал приложение MVC MVC asp.net. Контроллер отображается ниже. Я использую высокие диаграммы, и я хочу заполнить диаграмму тем, что возвращается контроллером.Заполнение диаграммы значениями, возвращаемыми контроллером

Есть 2 поля ниже, Mon и Tue, и мне нужно заполнить жестко закодированные значения в 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(). Сериализовать (m);' return? –

+0

1.) Это может быть GET или POST (я хочу знать, как это сделать). 2). Тип возврата - строка –

+0

Вы не ответили ни на один вопрос. –

ответ

0

во-первых, я хотел бы изменить тип возвращаемого Контролера от string до JsonResult. Чтобы вернуть контроллеры ActionResults является хорошим соглашением в стиле MVC, и это делает ваш код немного более наглядным.

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

Я считаю, что GET и POST запросы должны и работать на вас. Это похоже на то, что getallTime() является idempotent (хотя код здесь не показан), поэтому он выглядит как 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 в соответствии с вашими потребностями.

Смежные вопросы