Les données de la colonne(s) pour l'axe n ° 0 ne peut pas être de type string - Google Charts

J'essaie d'afficher certaines données dans Google Charts, mais obtenir cette erreur:

Data column(s) for axis #0 cannot be of type string..

J'ai deux propriétés de cette classe:

public class GAStatistics
{
    public string Date { get; set; }
    public string Visitors { get; set; }
}

Je suis de passage présente une liste de ces propriétés à partir de ce contrôleur:

public class GAStatisticsController : Controller
{

     //GET: /ShopStatistics/


    public ActionResult GetData()
    {
        return Json(CreateCompaniesList(), JsonRequestBehavior.AllowGet);
    }


    private IEnumerable<GAStatistics> CreateCompaniesList()
    {

        List<GAStatistics> ListGaVisitors = new List<GAStatistics>();

        foreach (var row in d.Rows)
        {

            GAStatistics GaVisits = new GAStatistics(row[0], row[1]);
            ListGaVisitors.Add(GaVisits);
        }


        return ListGaVisitors;

    }

}

De ce point de vue dont je vous passe la liste à partir du contrôleur:

<script type="text/javascript" src="https://www.google.com/jsapi"></script>

    <script type="text/javascript">

        google.load("visualization", "1", { packages: ["corechart"] });
        google.load("visualization", "1", { packages: ["treemap"] });
        google.setOnLoadCallback(drawChart);
        function drawChart() {
            $.get('/GAStatistics/GetData', {},
                function (data) {
                    var tdata = new google.visualization.DataTable();

                    tdata.addColumn('string', 'Date');
                    tdata.addColumn('string', 'Visitors');


                    for (var i = 0; i < data.length; i++) {
                        //tdata.addRow([data[i].Year, data[i].Salary, data[i].Expense]);
                        tdata.addRow([data[i].Date, data[i].Visitors]);
                    }



                    var options = {
                        title: "Expenses, salary For the current year"
                    };

                    var chart1 = new google.visualization.AreaChart(document.getElementById('chart_div1'));

                    chart1.draw(tdata, options);

                });


        }
    </script>

Une idée?

Vous devez convertir votre C# datetime chaîne pour le javascript de type Date. Il doit être quelque chose comme tdata.addRow([new Date(2014,1,1)..., mais au lieu de new Date vous devriez utiliser votre propre fonction d'analyse syntaxique. Peut-être que par la conversion de C# datetime pour un timestamp nombre comme c'est expliqué ici: stackoverflow.com/a/7596509/427225
Ce n' data ressembler?
Grâce vorrtex. Il est donc nessesary de convertir la chaîne de la valeur à la valeur de date en javascript? J'ai effectivement suivi un guide lors de l'écriture de ce code et le gars qui a écrit quelque chose comme cela, avec une Année de la propriété dans une liste - An = new DateTime(2014, 3, 1).ToString("yyyy/mm/dd") asgaliant - je ne sais pas, c'est tout ive a obtenu, trouvé un exemple en ligne.
Je ne sais pas comment votre string Date peuvent être converties. Mais si votre date de chaîne se présente comme "2011-10-20", ou "1999/01/31", ou "01 Jan 1990", il sera facilement analysée par javascript, par exemple new Date("2011-10-20"). Mettre un debug point d'arrêt quelque part et regarder quelle est la valeur de la Date.
Oh okej. Bien "Date" est une propriété de chaîne à partir de C#-classe GAStatistics, cette classe contient une chaîne de propriété appelée Visiteurs. La Date est formaté comme "2014-01-24" et les Visiteurs contient des chiffres comme "873".

OriginalL'auteur WhoAmI | 2014-03-14