C# 无法加载文件或程序集';System.Web.Extensions,Version=4.0.0.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35';
我正在尝试开发一个web应用程序,它根据存储在数据库中的不同数据显示一些图表。我在不同的在线教程中发现,我应该使用模型将数据从控制器传输到视图,然后使用Json.Encode,以便图表正确读取数据。 首先,它无法识别Json.Encode方法,因此我必须使用NuGet数据包管理器安装Microsoft.AspNet.webpage,当我尝试运行该应用程序时,会弹出此错误 我正在使用.NETCore5.0 这就是产生错误的原因:C# 无法加载文件或程序集';System.Web.Extensions,Version=4.0.0.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35';,c#,.net,asp.net-mvc,.net-core,C#,.net,Asp.net Mvc,.net Core,我正在尝试开发一个web应用程序,它根据存储在数据库中的不同数据显示一些图表。我在不同的在线教程中发现,我应该使用模型将数据从控制器传输到视图,然后使用Json.Encode,以便图表正确读取数据。 首先,它无法识别Json.Encode方法,因此我必须使用NuGet数据包管理器安装Microsoft.AspNet.webpage,当我尝试运行该应用程序时,会弹出此错误 我正在使用.NETCore5.0 这就是产生错误的原因: <script type="text/javascr
<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>
var chart=document.getElementById('pie').getContext('2d');
var myChart=新图表(图表{
键入“pie”,
数据:@Html.Raw(System.Web.Helpers.Json.Encode(Model.PieChartData)),
});
以下是我如何构建给定给视图的模型:
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;
}
public PieChartVM GetPieChartData()
{
var model=new PieChartVM();
变量标签=新列表();
标签。添加(“绿色”);
标签。添加(“蓝色”);
标签。添加(“灰色”);
标签。添加(“紫色”);
model.labels=标签;
var数据集=新列表();
var childModel=new PieChartChildVM();
var backgroundColorList=新列表();
var dataList=新列表();
foreach(标签中的变量标签)
{
如果(标签=“绿色”)
{
背景颜色列表。添加(“#2EC71”);
数据表。添加(12);
}
如果(标签=“蓝色”)
{
背景颜色列表。添加(“#3498db”);
增加(20);
}
如果(标签=“灰色”)
{
背景颜色列表。添加(“#95a5a6”);
数据表.增加(18);
}
如果(标签=“紫色”)
{
背景颜色列表。添加(“#9b59b6”);
增加(50);
}
}
childModel.backgroundColor=背景颜色列表;
childModel.data=数据列表;
Add(childModel);
model.datasets=数据集;
收益模型;
}
您是否尝试过以下方法:
using System.Text.Json.Serialization;
string jsonString = JsonSerializer.Serialize(yourModel);
或
尝试卸载该包“Microsoft.AspNet.WebPages”,并使用JSON.stringify()而不是System.Web.Helpers.JSON.Encode()。我相信您尝试使用的只是.NETFramework,而不是.NETCore。这里有一个类似的帖子:@jelde015谢谢你的回答。我试过了,但现在没有出现错误,它不会像数据集为空那样显示图表。第二种方法对我的程序不好,因为System.Web.Script需要System.Web.Extensions。对于第一个,我尝试使用HTML数据属性或ajax调用来拉取jsonString,但图表仍然不会显示任何内容。。。
var serializer = new System.Web.Script.Serialization.JavaScriptSerializer();
serializer.MaxJsonLength = Int32.MaxValue;
var jsonModel = serializer.Serialize(YOURMODEL);