gpt4 book ai didi

c# - 将数据从 Model 导入 View 时出现无法解决的错误

转载 作者:行者123 更新时间:2023-11-30 16:38:22 25 4
gpt4 key购买 nike

我有一个模型:

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

然后,在 Controller 中我获取数据和标签,并将其保存在将发送到 View 的模型中:

[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 图表的 View 中,但我在控制台上收到错误并且图表未显示。

<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[];

非常感谢您。

最佳答案

如果你想将 View 模型属性用于 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));

关于c# - 将数据从 Model 导入 View 时出现无法解决的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55236067/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com