Javascript 中的 C# Razor foreach 循环语法

C# Razor foreach loop syntax in Javascript

本文关键字:循环 语法 foreach Razor 中的 Javascript      更新时间:2023-09-26

我从谷歌图表中得到了以下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)]
                 }
                ]);

有人知道如何做到这一点吗?

你不需要

使用 Html.DisplayFor,因为它将呈现模板而不仅仅是值。使用简单的@item.year来获取该值,例如:

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

更新 1.

我也对你如何定义foreach循环有一些疑问 - 它可能不起作用,但你也可以尝试这样的事情(@:明确指出内容的开始):

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