我有一个MVC类输出用户等级和数量的列表:
public class GradeNumModel
{
public int Grade;
public int Count;
}
伴随着一系列主题名称:
公共类GradeListModel { public string [] Names = new string [7];
public GradeListModel()
{
//Ustawienie pierwszych indeksów na zero pomaga uniknąć problemów przy dodawaniu wartości
Names[0] = "";
Names[1] = "Niedostateczny";
Names[2] = "Dopuszczający";
Names[3] = "Dostateczny";
Names[4] = "Dobry";
Names[5] = "Bardzo Dobry";
Names[6] = "Celujący";
}
}
现在在我的视图中我有一个名为 Chartist 的javascript库来创建图表,我希望这些图表可以应用到这些图表中。
以下是我(想)将模型数据插入JS
的方法 var data = {
labels: [
@foreach (var Gr in Model.AllGradesNum)
{
string.Join(Model.GradeList.Names.ElementAt(@Gr.Grade), ", ");
}
],
series: [
@foreach (var Gr in Model.AllGradesNum)
{
string.Join(Gr.Count.ToString(), "0, ");
}
]
};
我们这样的配置问题根本没有输出值。 即使尝试打印正常div中的值也不会弹出任何内容。
控制台也报告没有错误,检查源显示两个空数组:
var data = {
labels: [
],
series: [
]
};
这可能是什么问题,我该如何解决?
**编辑:** 输出如下值:
@foreach (var Gr in Model.AllGradesNum)
{
<p>@Gr.Count + @Gr.Grade</p>
}
无问题地工作并显示正确的数据
答案 0 :(得分:1)
您的代码存在两个问题 1.您正在计算foreach中的表达式,但不将其打印到HTML。 2.连接语法不正确。 Join将第一个参数作为分隔符,第二个作为数组,你已经交换了它。 以下代码可能适合您
var data = {
labels: [
@foreach (var Gr in Model.AllGradesNum)
{
string t1 = string.Join(", ",Model.GradeList.Names.ElementAt(@Gr.Grade));
@t1
}
],
series: [
@foreach (var Gr in Model.AllGradesNum)
{
string t2 = string.Join("0, ",Gr.Count.ToString());
@t2
}
]
};