J#中的C#Razor foreach循环语法

时间:2014-12-02 13:50:49

标签: javascript c# asp.net-mvc-4 razor

我从谷歌图表中获得了以下javascript代码:

function drawTimeChart() {
    var dataArray = generateTimeChartArray();
    var data = google.visualization.arrayToDataTable([
    ['2001', '25'],
      ['2002', 35],
      ['2003', 25],
      ['2004', 55]
    ]);

    var options = {
        title: 'Reported devices in MAUDE based on the term since 1990',
        backgroundColor: '#EFEEEF',
        hAxis: { showTextEvery: 4 }
    };

    var chart = new google.visualization.LineChart(document.getElementById('MaudeTimeChart'));

    chart.draw(data, options);
}

我想要动态添加我插入数据的数据。我试过这样做:

var data = google.visualization.arrayToDataTable([
                @foreach (var item in Model.NumberOfReportedRecords){
                    [@Html.DisplayFor(modelItem => item.year), @Html.DisplayFor(modelItem => item.Status)]
                 }
                ]);

任何人都知道如何使这项工作?

1 个答案:

答案 0 :(得分:6)

您不需要使用Html.DisplayFor,因为它会呈现模板而不仅仅是值。仅使用@item.year获取该值,如:

var data = google.visualization.arrayToDataTable([
                @foreach (var item in Model.NumberOfReportedRecords){
                    ['@item.year', '@item.Status']
                 }
                ]);

更新1。

我对你如何定义foreach循环有一些疑问 - 它可能不起作用,但你也可以尝试类似的东西(@: explicitly indicates the start of content):

@foreach (var item in Model.NumberOfReportedRecords) 
        {
            @:['@(item.year)', '@(item.Status)'],
        }