c# - 将数据从模型导入视图给我一个我无法解决的错误
问题描述
我有一个模型:
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>
这是我在控制台上遇到的错误: 控制台上的错误
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));
推荐阅读
- ios - 将 xcode 更新到 9.4 后,react native ios build 失败。错误是“NSInteger”类型的值
- heroku - Heroku 中的 CLI 编辑器?
- sockets - 如何区分套接字句柄和文件句柄
- sql - SQL 查询以从不同日期的值中提取大约 90 天的值
- python - 唯一的 .txt 文件扩展名
- css - Webpack 没有拾取一些 CSS 文件
- ruby - 使用 Nokogiri 检索 XML 命名空间
- c++ - 使用 #define 跟踪日志记录以避免性能问题
- python - 在 Python 的数据框中聚合特定 ID 的值
- c++ - 如何在Boost Multi-index中使equal_range迭代器按不同的索引排序?