ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

导入数据从模型到视图给我一个我无法解决的错误

2019-12-11 02:08:57  阅读:238  来源: 互联网

标签:chart-js asp-net c asp-net-mvc


我有一个模型:

public class ReportViewModel
{
    public int[] Data { get; set; }
    public string[] Labels { get; set; }
}

然后,在控制器中,我获取数据和标签,并将其保存在将发送到视图的模型中:

[HttpGet]
    public async Task<IActionResult> Report()
    {

        ReportingViewModel vm = new ReportingViewModel();
        vm.Data = DataReporting(vm);
        vm.Labels = LabelReporting(vm);
        return View(vm);
    }

数组创建完美,因为我已经调试了,而且正是我想要的.

然后,我通过@ Model.Data将它们传递到Chart.js图形的视图中,但是在控制台上出现错误,并且该图形未显示.

<div id="container" class="align-items-center" style="width:75%; margin: 0 auto" ;>
    <canvas id="myChart" width="682" height="340"></canvas>
    <script>
        var colorbarra = Array(78).fill('rgba(54, 162, 235, 0.2)');
        var colorborde = Array(78).fill('rgba(54, 162, 235, 1)');
        var datos = @Model.Data;
        var etiquetas = @Model.Labels ;
        var ctx = document.getElementById("myChart");
        var myChart = new Chart(ctx, {
            type: 'bar',
            data: {
                labels: etiquetas,
                datasets: [{
                    label: 'Nº de Custodios subidos',
                    data: datos,
                    backgroundColor: colorbarra,
                    borderColor: colorborde,
                    borderWidth: 1
                }]
            },
            options: {
                scales: {
                    yAxes: [{
                        ticks: {
                            beginAtZero: true
                        }
                    }]
                }
            }
        });
    </script>
</div>

这是我在控制台上看到的错误:
Error on console

Reporting:188 Uncaught SyntaxError: Unexpected token ]

第188行是与@ Model.Data相关的行

var datos = System.Int32[];

提前非常感谢您.

解决方法:

如果您想将视图模型属性用于javascript,则需要将其转换为

var datos = JSON.stringify(@Model.Data);
var etiquetas = JSON.stringify(@Model.Labels);

或者你可以使用

var datos = @Html.Raw(Json.Serialize(@Model.Data));
var etiquetas = @Html.Raw(Json.Serialize(@Model.Labels));

标签:chart-js,asp-net,c,asp-net-mvc
来源: https://codeday.me/bug/20191211/2105613.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有