MVC Ajax Chart Controller - PullRequest
       5

MVC Ajax Chart Controller

0 голосов
/ 15 сентября 2011

Ну, я создаю сайт "статистика".У меня уже есть шаблон, немного данных и структура.

Мне нравится Google Charts API, особенно внешний вид диаграмм, поэтому я создал HtmlHelper в качестве расширения для него.Вы можете использовать это так:

@Html.GoogleChart("Types", 300, 300, GChartType.Pie, (List<KeyValuePair<string, int>>)ViewBag.MyData)

Он имеет несколько перегрузок и поддерживает несколько типов диаграмм и одно- и многомерные данные.Он возвращает полный HTML-код для изображения диаграммы.

Через несколько недель я опубликую помощника как Open Source, я просто исправляю некоторые возможные ошибки.

Как видите,Я передаю список KeyValuePair в View через ViewBag, чтобы с помощью этих данных можно было сгенерировать диаграмму.

Это работает нормально, но я сталкиваюсь с несколькими контроллерами, использующими одни и те же данные для генерации диаграмм, и я хочукодировать СУХОЙ.Могут ли некоторые из вас, мастера-джедаи, помочь этому молодому падавану?

Мне кажется, у меня две проблемы:

  • Как не повторять диаграмму в представлениях;
  • Какне извлекать статистику / отфильтрованные данные из базы данных на нескольких контроллерах;

Столкнувшись с этими двумя проблемами, как их решить?

  • Создание частичных представлений с помощью помощника диаграммыуже установлено?
  • Создать ChartController с действиями для каждой конкретной диаграммы?
  • Создать контроллер для извлечения данных и их организации?
  • Создать простой класс для получения и возврата данныхорганизованные данные для нескольких контроллеров?
  • Сделать класс, который будет возвращать только URL-адрес диаграмм, используемых для использования помощника?
  • И контроллер для диаграмм и для данных?
  • Делать Ajax звонки этим парням?

Может ли кто-нибудь помочь мне понять возможности и, возможно, указать путь?

Я ценю ваше время, проведенное здесь!

1 Ответ

2 голосов
/ 15 сентября 2011

Как не повторять диаграмму в представлениях

Я не совсем уверен, что вы имеете в виду, но если объем повторяемого кода можно контролировать (маленький - например, одно-лайнер) тогда это наверное не страшно повторять.Если для того, чтобы не повторить, требуется больше усилий, чем для повторения, то об этом действительно стоит беспокоиться.

Как не получать статистику / отфильтрованные данные из базы данных на нескольких контроллерах

Вы имеете в виду, как избежать получения одних и тех же данных более одного раза?Если это так, вам нужно перетащить данные в посредника, и вместо этого ваши конкретные запросы к диаграммам попадут туда.Это позволит избежать попадания в исходный источник данных более одного раза - но для настройки потребуется много работы, поэтому вам придется провести некоторый анализ, чтобы выяснить, стоит ли оно того (плюсы и минусы и т. Д.).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...