c# - ASP.NET MVC 谷歌饼图控制器
问题描述
我正在寻找一个朋友代码来将谷歌图表实现到我的 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
我想要它,以便饼图图例/键显示站点而不是时间。
解决方案
不确定,但这是:
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
我相信还有更多需要“改进”或“改变”的地方,但我认为这已经是一种改进。
我相信其他人可以更好地阐述我在这里的建议:)
推荐阅读
- gitlab - gitlab-ci.yml 在合并请求期间 rebase 后未正确重新加载
- java - can we achieve 100 percent Abstaction using Dependency inversion principle?
- cakephp-3.0 - 如何避免 _matchingData 并改为获取特定值
- java - 在 Kotlin 的同一个 Activity 中动态传递数据
- python - Brainfuck中优化的细胞增加
- dynamic - 带有“函数体返回 PL/SQL”的交互式网格列给出了引用列的错误(错误?)
- python - 顶级包之外的相对导入
- typescript - 如何在 Nestjs 测试中覆盖导入的模块?
- c++ - 需要帮助弄清楚如何使用 Qdial 更改我的 main 中的变量
- iframe - 第三方跟踪的跨域帧错误