Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将剑道饼图与数据源绑定_C#_.net_Asp.net Mvc_Telerik_Kendo Asp.net Mvc - Fatal编程技术网

C# 将剑道饼图与数据源绑定

C# 将剑道饼图与数据源绑定,c#,.net,asp.net-mvc,telerik,kendo-asp.net-mvc,C#,.net,Asp.net Mvc,Telerik,Kendo Asp.net Mvc,我正在尝试使用饼图来显示统计数据。数据在我的表中,我是这样得到的: public class StatisticsAccess { public static object getTypesForStatistics() { var dbo = new UsersContext(); var all = (from a in dbo.Note select a).ToList(); var

我正在尝试使用饼图来显示统计数据。数据在我的表中,我是这样得到的:

public class StatisticsAccess
{
    public static object getTypesForStatistics()
    {
        var dbo = new UsersContext();
        var all = (from a in dbo.Note
                      select a).ToList();
        var results = all.GroupBy(item => item.language.lang)
                         .Select(g => new
                         {
                             language = g.Key,
                             Count = g.Count()
                         });
        return (results.ToList());

    }
}
控制器:

public class StatisticsController : Controller
{
    //
    // GET: /Statistics/

    public ActionResult Index()
    {
        return View();      
    }

    public void displayChart()
    {
        var results = Json(DAL.StatisticsAccess.getTypesForStatistics()); 
    }

}
视图:

我的视图中没有语法错误,但当我加载页面时,我的图表只是显示为空

有人能解释一下我应该遵循什么语法来修复这个错误吗?
Thx

您的代码至少存在两个主要问题

您已经定义了柱状图,这应该是饼图:

@(Html.Kendo().Chart<MyModel>()
    .Name("chart")
    .Title(title => title
        .Text("Share of Internet Population Growth, 2007 - 2012")
        .Position(ChartTitlePosition.Bottom))
    .Legend(legend => legend.Visible(false))
    .Series(series => {
        series.Pie(model => model.language, model => model.Count);
    })
    .DataSource(ds => ds.Read(read => read.Action("displayChart", "Statistics")))
    .Tooltip(tooltip => tooltip
        .Visible(true)
        .Format("{0}%")
    )
)
此外,您可能希望执行以下操作:

创建视图模型:

public class PieModel {
    public string Language { get;set; }
    public int Count { get;set; }
}
将模型添加到图表中

@(Html.Kendo().Chart<PieModel>() {
    ...
@(Html.Kendo().Chart()){
...
更改您的查询:

public IEnumerable<PieModel> getTypesForStatistics()
{
    var dbo = new UsersContext();
    var all = (from a in dbo.Note
                      select a).ToList();
    var results = all.GroupBy(item => item.language.lang)
                         .Select(g => new PieModel
                         {
                             Language = g.Key,
                             Count = g.Count()
                         });
    return results.ToList();
}
public IEnumerable getTypesForStatistics()
{
var dbo=新用户上下文();
var all=(来自dbo.Note中的
选择一个.ToList();
var results=all.GroupBy(item=>item.language.lang)
.选择(g=>new-Model
{
语言=g.键,
Count=g.Count()
});
返回结果。ToList();
}

感谢您抽出时间,但图表仍然显示为空:(
@(Html.Kendo().Chart<PieModel>() {
    ...
public IEnumerable<PieModel> getTypesForStatistics()
{
    var dbo = new UsersContext();
    var all = (from a in dbo.Note
                      select a).ToList();
    var results = all.GroupBy(item => item.language.lang)
                         .Select(g => new PieModel
                         {
                             Language = g.Key,
                             Count = g.Count()
                         });
    return results.ToList();
}