Asp.net mvc 4 使用模型制作图表
A有以下型号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; }
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>