Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 无法加载文件或程序集';System.Web.Extensions,Version=4.0.0.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35';_C#_.net_Asp.net Mvc_.net Core - Fatal编程技术网

C# 无法加载文件或程序集';System.Web.Extensions,Version=4.0.0.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35';

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

我正在尝试开发一个web应用程序,它根据存储在数据库中的不同数据显示一些图表。我在不同的在线教程中发现,我应该使用模型将数据从控制器传输到视图,然后使用Json.Encode,以便图表正确读取数据。 首先,它无法识别Json.Encode方法,因此我必须使用NuGet数据包管理器安装Microsoft.AspNet.webpage,当我尝试运行该应用程序时,会弹出此错误

我正在使用.NETCore5.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>

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);