Asp.net mvc 4 使用模型制作图表

Asp.net mvc 4 使用模型制作图表,asp.net-mvc-4,charts,Asp.net Mvc 4,Charts,A有以下型号 using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; using System.Web; namespace GoOnWork.Models { public class Skill { [Key] public int Id { get; set; }

A有以下型号

using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Web;

namespace GoOnWork.Models
{
    public class Skill
    {
        [Key]
        public int Id { get; set; }

        public DateTime AddedOn { get; set; }

        public DateTime ModifiedOn { get; set; }

        public int? DescriptionId { get; set; }

        public virtual Description Descriptions { get; set; }

        public int? LevelId { get; set; }

        public virtual Level Levels { get; set; }

        public string UserId { get; set; }

        public virtual ApplicationUser User { get; set; }

    }
}
我想从技能模型中创建包含级别(xFields)和描述(yFields)的图表。字段“说明”和“级别”与其他表连接。 我有一个图表视图模型

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Helpers;

namespace GoOnWork.Models
{
    public class ChartViewModel
    {
        public Chart Chart { get; set; }
    }
} 
我基于该视图模型编写了一个控制器

public class ChartController : Controller
    {
        ApplicationDbContext db = new ApplicationDbContext();
        // GET: Chart
        public ActionResult Index()
        {
            var model = new ChartViewModel
            {
                Chart = GetChart()
            };
            return View(model);
        }
        private Chart GetChart()
        {
            var user = User.Identity.GetUserName();
            var data = db.Skills.Where(x => x.User.UserName == user);
            return new Chart(600, 400, ChartTheme.Blue)
                .AddTitle("Skills")
                .AddLegend()
                .DataBindTable(data, "LevelName")
                .AddSeries(
                    "Default",
                    chartType: "bar",
                    xValue: data, xField: "LevelName",
                    yValues: data, yFields: "DescriptionName"
                    );
        }
    }
以及Index()的视图

@model GoOnWork.Models.ChartViewModel
@{
布局=空;
}
指数
我们很棒的图表!
@Model.Chart.Write(格式:“png”)
问题是我不知道如何用这些字段创建图表。 或者如何修改GetChart()函数以正常工作。
如果有人能帮助我,那就更好了

您遇到了什么问题?我不知道如何编写GetChart()函数来正确处理数据库中的数据。您只需将
IEnumerable
传递到
DataBindTable()
选项(并且
string
没有属性
LevelName
DescriptionName
)。只需从查询中删除
。选择(y=>y.Levels.LevelName)
,然后返回
IEnumerable
请用代码显示给我好吗。
var data=db.Skills.Where(x=>x.User.UserName==User)
@model GoOnWork.Models.ChartViewModel
@{
    Layout = null;
}
<!DOCTYPE html>
<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>Index</title>
</head>
<body>
    <h2>Our Awesome Chart!</h2>
    @Model.Chart.Write(format: "png")
</body>
</html>