我尝试使用ChartJS绘制Excel数据。
Visual Studio说的是List<Graphs> does not contain a definition for Answers.
有人可以查看我的代码,也许会发现一两个错误吗?谢谢!
视图模型:
using System;
using System.Collections.Generic;
using System.Linq;
using ReinovaGrafieken.Models;
namespace ReinovaGrafieken.Models
{
public class GraphDataViewModel
{
public List<Graphs> GraphData { get; set; }
}
}
图表模型:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using ReinovaGrafieken.Models;
namespace ReinovaGrafieken.Models
{
public class Graphs
{
public string Names { get; set; }
public string AnswerHeaders { get; set; }
public int Answers { get; set; }
public string Questions { get; set; }
public string AnteOrPost { get; set; }
}
}
View中的一段代码:
@model ReinovaGrafieken.Models.GraphDataViewModel
@{
ViewBag.Title = "Dashboard";
Layout = "~/Views/Shared/_Layout.cshtml";
}
@Scripts.Render("~/bundles/jquery")
@Scripts.Render("~/bundles/bootstrap")
<h2>Dashboard</h2>
<div id="chart_container">
<canvas id="bar_chart"></canvas>
<script>
var answers = @Html.Raw(Json.Encode(@Model.GraphData.Answers));
var labels = @Html.Raw(Json.Encode(@Model.GraphData.Names));
这是我从中得到想法的地方,它对那个人起作用:
https://www.youtube.com/watch?v=E7Voso411Vs&t=2787s
答案 0 :(得分:1)
GraphData
是Graph
的集合。因此,Answers
是Graph
上的可访问属性,而不是GraphData
。
答案 1 :(得分:1)
就像@Stephen Muecke写的那样,List<T>
不包含名为Answers
的属性。
你可以拿这个你需要的元素:
@Model.GraphData.First().Answers
(从列表中获取第一个元素)。
或者您可以使用.Foreach()
方法