【发布时间】:2021-04-09 16:28:23
【问题描述】:
我正在尝试开发一个 Web 应用程序,该应用程序根据存储在数据库中的不同数据显示一些图表。我在网上的不同教程中发现,我应该使用模型将数据从控制器传输到视图,然后使用 Json.Encode 让我的图表正确读取数据。 首先它无法识别 Json.Encode 方法,所以我不得不使用 NuGet Packet Manager 安装 Microsoft.AspNet.WebPages,当我尝试运行该应用程序时,会弹出此错误。
我正在使用 .NET Core 5.0
这是错误出现的地方:
<script type="text/javascript">
var chart = document.getElementById('pie').getContext('2d');
var myChart = new Chart(chart, {
type: 'pie',
data : @Html.Raw(System.Web.Helpers.Json.Encode(Model.PieChartData)),
});
</script>
这就是我构建提供给视图的模型的方式:
public PieChartVM GetPieChartData()
{
var model = new PieChartVM();
var labels = new List<string>();
labels.Add("Green");
labels.Add("Blue");
labels.Add("Gray");
labels.Add("Purple");
model.labels = labels;
var dataset = new List<PieChartChildVM>();
var childModel = new PieChartChildVM();
var backgroundColorList = new List<string>();
var dataList = new List<int>();
foreach(var label in labels)
{
if (label == "Green")
{
backgroundColorList.Add("#2ecc71");
dataList.Add(12);
}
if (label == "Blue")
{
backgroundColorList.Add("#3498db");
dataList.Add(20);
}
if (label == "Gray")
{
backgroundColorList.Add("#95a5a6");
dataList.Add(18);
}
if (label == "Purple")
{
backgroundColorList.Add("#9b59b6");
dataList.Add(50);
}
}
childModel.backgroundColor = backgroundColorList;
childModel.data = dataList;
dataset.Add(childModel);
model.datasets = dataset;
return model;
}
【问题讨论】:
-
尝试卸载该包“Microsoft.AspNet.WebPages”,并使用 JSON.stringify() 而不是 System.Web.Helpers.Json.Encode()。我相信您尝试使用的内容仅在 .Net Framework 中可用,在 .Net Core 中不可用。这是一个类似的帖子:stackoverflow.com/questions/51220168/…
-
@jelde015 感谢您的回答。我试过了,但现在不是错误,而是像数据集为空一样不显示图表。
标签: c# .net asp.net-mvc .net-core