ASP.NET MVC Контроллер круговой диаграммы Google - PullRequest
0 голосов
/ 13 марта 2019

Я ищу код друзей, чтобы внедрить диаграммы Google в мой проект MVC.

У меня есть модель, из которой я получаю данные:

public partial class HoursPerSite
{
    public string SiteName { get; set; }
    public Nullable<decimal> SiteHours { get; set; }
}

Диаграмма отрисована и выглядит хорошо, но легенда показывает SiteHours, а не SiteName, как мне бы хотелось.

Вот часть контроллера:

// HOLIDAY PIE START
ViewBag.msg = db.HoursPerSites.Count().ToString();

var query = from r in db.HoursPerSites
            select new { Count = r.SiteHours, Value = r.SiteHours };

var result2 = query.ToList();

var datachart2 = new object[result2.Count];
int l = 0;
foreach (var i in result2)
{
    datachart2[l] = new object[] { i.Value.ToString(), i.Count };
    l++;
}
string datastr2 = JsonConvert.SerializeObject(datachart2, Formatting.None);
ViewBag.dataj2 = new HtmlString(datastr2);

// HOLIDAY PIE END

Мне бы хотелось, чтобы легенда / ключ круговой диаграммы отображали сайт, а не часы.

1 Ответ

1 голос
/ 13 марта 2019

Не уверен, но это так:

select new { Count = r.SiteHours, Value = r.SiteHours };

Не должно быть: ( SiteName ):

select new { Count = r.SiteHours, Value = r.SiteName };

Кроме того, ваше наименование очень плохоеесли я могу сказать.Это не сделает вашу будущую работу легче.Попробуйте назвать свои переменные и объекты более конкретно.

РЕДАКТИРОВАТЬ:

  • Вы можете использовать регионы вместо комментариев кода, например, которые будут разделять / упорядочивать / просматривать части кода /разделы намного проще
  • Имена ваших переменных лучше сделают вашу жизнь проще, но и другим людям, работающим над вашим кодом / с ним, будет проще

Я бы изменил ваш текущий код на это:

Обратите внимание, что у меня нет редактора и что могут быть синтаксические ошибки

#region Holiday Pie Chart

ViewBag.msg = db.HoursPerSites.Count().ToString();

var queryHoursPerSites = from r in db.HoursPerSites
        select new { Count = r.SiteHours, Value = r.SiteHours };

var resultsQueryHoursPerSites = queryHoursPerSites.ToList(); // or HoursPerSitesCollection

var holidayPieChart = new object[resultsQueryHoursPerSites.Count];
int counter = 0; // 
foreach (var record in resultsQueryHoursPerSites)
{
    holidayPieChart[counter] = new object[] { record.Value.ToString(), record.Count };
counter++;
}

string deserialisedResults = JsonConvert.SerializeObject(holidayPieChart, Formatting.None);

// no idea what dataj2 is here ...
ViewBag.dataj2 = new HtmlString(deserialisedResults);


#endregion

Я уверен, что тамэто даже больше, чтобы «улучшить» или «изменить», но это, на мой взгляд, уже будет улучшением.

Я уверен, что другие могут еще лучше уточнить то, что я предлагаю здесь:)

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