C# 单个网页中的多个图表

C# 单个网页中的多个图表,c#,asp.net,asp.net-mvc-4,razor,charts,C#,Asp.net,Asp.net Mvc 4,Razor,Charts,我试图在ASP类网页中复制一些内容,但在ASP.NETMVC网页中使用Razor 基本上,SQL调用是为了获取一些数据,我使用google.visualization.arrayToDataTable从SQL中输入数据,给它一个标题,然后绘制所述图表 var chart = new google.visualization.ColumnChart(document.getElementById('topThreeModelNumberST_div')); chart.draw(d

我试图在ASP类网页中复制一些内容,但在ASP.NETMVC网页中使用Razor

基本上,SQL调用是为了获取一些数据,我使用google.visualization.arrayToDataTable从SQL中输入数据,给它一个标题,然后绘制所述图表

    var chart = new google.visualization.ColumnChart(document.getElementById('topThreeModelNumberST_div'));
    chart.draw(data, options);
...html code emitted for brevity
<div id="topThreeModelNumberST_div" style="width:400; height:300"></div>   
var chart=new google.visualization.ColumnChart(document.getElementById('topThreeModelNumberST_div');
图表绘制(数据、选项);
…为简洁起见发出的html代码
这样做了几次。结果是这一页上有6到7张图表

作为测试,我做了一个家庭控制器

public ActionResult Charts()
{
    List<Models.ModelErrorReports> reports = new List<Models.ModelErrorReports>();
    reports.Add(DAL.DevSQL.GetModelErrorReports("Model1", "efipreQCProError"));
    reports.Add(DAL.DevSQL.GetModelErrorReports("Model2", "eepreQCProError"));

    return View(reports);
}
public ActionResult Charts()
{
列表报告=新列表();
reports.Add(DAL.DevSQL.getmodelerreports(“Model1”、“efipreQCProError”);
reports.Add(DAL.DevSQL.GetModelErrorReports(“Model2”、“eepreQCProError”);
返回视图(报告);
}
在我看来

@model List<FailFixLog.Models.ModelErrorReports>

@{
    ViewBag.Title = "Charts";
}

<h2>Charts</h2>


    @{
        List<Chart> charts = new List<Chart>();

        foreach (var item in Model)
        {
            var myChart = new Chart(485, 300);
            myChart.AddTitle(@item.ModelName);
            myChart.AddSeries(@item.ModelName + "Series",
                xValue: @item.ErrorReports.ErrorDescriptions, 
                yValues: @item.ErrorReports.ErrorCounts);
            charts.Add(myChart);
        }

    }

<table>
    @foreach (var chart in charts)
    {
        <tr>
            <td>
                @{@chart.Write();}
            </td>
        </tr>
    }
</table>
@型号列表
@{
ViewBag.Title=“图表”;
}
图表
@{
列表图表=新列表();
foreach(模型中的var项目)
{
var myChart=新图表(485,300);
myChart.AddTitle(@item.ModelName);
myChart.AddSeries(@item.ModelName+“Series”,
xValue:@item.ErrorReports.ErrorDescriptions,
Y值:@item.ErrorReports.ErrorCounts);
添加(myChart);
}
}
@foreach(图表中的var图表)
{
@{@chart.Write();}
}

现在我尝试了一些变化,但这是我放弃来到这里之前的最后一次尝试。结果仍然是相同的,对于Model1,我只得到一个图表。我在某个地方看到,我必须为我的每个图表创建一个视图。。。但这对我来说没有意义,因为这样我就必须将列表传递给局部视图,而这是我第二天编写任何类型的web代码,我都无法理解这一点。为了防止您好奇,我有一个单元测试,它显示我的列表有两个错误报告,并且数据是唯一的。如何解决此问题?

我知道您的代码有一个单元测试,但您是否尝试在视图中设置一个制动点,并检查列表图表是否实际包含这两个图表?你是对的,除非你想在多个页面上共享图表,否则没有理由为每个图表创建一个局部视图。@MoisesCardena不是一个断点,我加入了一个
Debug.WriteLine(item)
和一个
Debug.WriteLine(chart)
,在我的输出中我看到它写了两次。@Robert Snyder我也陷入了同样的问题。你解决这个问题了吗?