Google 饼图在 Asp.Net MVC 的视图页面上显示不正确

Google Pie Chart not displaying correctly on view page in Asp.Net MVC

我似乎无法在 view page 上显示我的 Google Pie Chart。它似乎没有正确显示 Pie Chart 中的 data,我不完全确定为什么,我尝试更改 dataColumn 的代码,但最终没有显示任何东西。所以我恢复了...... query 确实有效,正在从数据库中提取正确的数据。

我对报告还很陌生,所以如果有人可以提出解决方案,我将不胜感激!

我已经使用 razor syntax 在视图中完成了所有操作。如果需要任何其他代码,请告诉我。

查看页面代码:

@using WebMatrix.Data;
@using WebMatrix.WebData;


@{
    var db = Database.Open("HealthContext");

    String rows = "";

    var Query = ("SELECT Hospital.Name,Hospital.Province,Count([Order].OrderID) AS Orders FROM Hospital,[Order] WHERE Hospital.HospitalID = [Order].HospitalID GROUP BY Hospital.Name,Hospital.Province;");

    var AppQuery = db.Query(Query);


    List<string> rowsList = new List<string>();

    foreach (var item in AppQuery)
    {
        rowsList.Add("['" + item.Name + "','" + item.Orders + "']");


    };

    rows = String.Join(", ", rowsList);

}

<h2>PieChart1</h2>


<script type="text/javascript" src="https://www.google.com/jsapi"></script>
<script type="text/javascript">
    google.load("visualization", "1", { packages: ["corechart"] });
    google.setOnLoadCallback(drawChart);
    function drawChart() {

        var data = new google.visualization.DataTable();

        data.addColumn('string', 'Name');     
        data.addColumn('string', 'Orders');
        data.addRows([
            @Html.Raw(rows)]
        );

        var options = {
            title: 'Orders Per Hospital'
        };

        var chart = new google.visualization.PieChart(document.getElementById('piechart'));

        chart.draw(data, options);
    }
</script>

报告的显示方式:

如果没有看到 @Html.Raw(rows) 产生的数据,很难做出肯定的回答。

但是,看起来 String 用于订单而不是 Number

我将从更改开始:

rowsList.Add("['" + item.Name + "','" + item.Orders + "']");

至:

rowsList.Add("['" + item.Name + "'," + item.Orders + "]");

并且:

    data.addColumn('string', 'Name');     
    data.addColumn('string', 'Orders');
    data.addRows([
        @Html.Raw(rows)]
    );

收件人:

    data.addColumn('string', 'Name');     
    data.addColumn('number', 'Orders');
    data.addRows([
        @Html.Raw(rows)]
    );