导入数据从模型到视图给我一个我无法解决的错误
作者:互联网
我有一个模型:
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