Laden...

Javascript Chart mit Daten aus MVC Controller

Erstellt von micha0827 vor 6 Jahren Letzter Beitrag vor 6 Jahren 1.946 Views
M
micha0827 Themenstarter:in
85 Beiträge seit 2015
vor 6 Jahren
Javascript Chart mit Daten aus MVC Controller

Guten Tag,

ich habe ein Javascript für einen Chart welches ich gerne aus meinem Controller mit Daten füttern möchte.


<script type="text/javascript">
        $(document).ready(function () {
            c3.generate({
                bindto: '#lineChart',
                data: {
                    columns: [
                        ['data1', 30, 200, 100, 400, 150, 250],
                    ],
                    colors: {
                        data1: '#1ab394',
                    }
                }
            });
        });
    </script>

Ich verstehe nicht soviel von Javascript und hangle mich seit heute Morgen durch Google um diverse Beispiele zu probieren, immer mit Fehler. Hat jemand einen heissen Tip für mich auf welchem Weg ich weiter probieren kann ? Ich muss wohl in die Variable data mit einem JSON String rein ?

Danke
Michael

6.911 Beiträge seit 2009
vor 6 Jahren

Hallo micha0827,

immer mit Fehler.

Welcher Fehler? Bitte beachte [Hinweis] Wie poste ich richtig? Punkt 5.

Ich muss wohl in die Variable data mit einem JSON String rein ?

Nimm z.b. jQuery her und hol dir damit die Daten --> $.get. Wenn die Daten da sind, rufst du im Callback c3.generate, dort kannst du dann auf die Daten zugreifen.

Schau dir dazu einfach die Doku und Beispiele von jQuery an.

mfG Gü

Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.

"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"

M
micha0827 Themenstarter:in
85 Beiträge seit 2015
vor 6 Jahren

vielen Dank. Bevor ich mich jetzt in die Problematik einarbeite, findest du JQuery ist der richtige Ansatz oder wäre ein anderes Framework zeitgemäßer ?

Michael

6.911 Beiträge seit 2009
vor 6 Jahren

Hallo micha0827,

ich finde jQuery schon zeitgemäß -- hast du andere Infos? 😉

Auch wenn du andere Client-Frameworks verwenden willst, schadet es nicht sich mit jQuery vertraut zu machen.

Wenns jedoch nur darum geht, Daten für das Diagramm zu laden, so ist jQuery die "beste" Wahl.

mfG Gü

Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.

"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"

2.207 Beiträge seit 2011
vor 6 Jahren

Hallo micha0827,

je nachdem was du sonst noch verwendest bei dir im Projekt kann jQuery schon eine Wahl sein. Ich glaube dein Problem ist jedoch, dass du irgendwie die MVC-Infos aus Javascript heraus ansprechen willst, ist das richtig?

Falls dem so ist: Bau dir ein ViewModel, gib das an den Client. Danach kannst du mit @Model.MyProperty auch im Javascript auf deine Infos zugreifen.

Gruss

Coffeebean

M
micha0827 Themenstarter:in
85 Beiträge seit 2015
vor 6 Jahren

Hallo Coffeebean,

Ja das funktioniert super. So kann ich zumindest die Konfiguration für den Chart mit übergeben. Macht es denn Sinn die Daten mit als JSON String zu übergeben ? Dann müsste man nicht extra einen getJSON machen. Ansonsten funktioniert der auch. Obwohl ich mich derzeit noch mit dem Datum herumschlage. Mein JSON Serializer wandelt meine DB Datumsfelder in "/Date(1495754364697)/" und ich glaube JS will das ganze ohne / .... Vielleicht einfach nochmal einen Replace drüberlaufen lassen.

Michael

5.657 Beiträge seit 2006
vor 6 Jahren

Weeks of programming can save you hours of planning

M
micha0827 Themenstarter:in
85 Beiträge seit 2015
vor 6 Jahren

ja, UTC Format habe ich hinbekommen, aber das JS möchte gern diese "Millisekunden" Format. Hab das ganze jetzt als String zusammengesetzt und es funktioniert. Nun noch die Sonderzeichen 😃 Wenn ich so wie Coffeebean vorgeschlagen hat den String mit @Model übertrage macht JS aus "Außenspiegel" -> Außenspiegel mit Escape Code für ß. Wie muss das denn umcodiert werden damit es passt ?

Michael

16.806 Beiträge seit 2008
vor 6 Jahren

JSON Serializer wandelt meine DB Datumsfelder

JSON arbeitet eigentlich mit ISO 8601 und nicht mit Date(<Unix Timestamp>)
Was für ein Serializer soll das denn sein? Sowohl Netwonsoft (quasi Standard) und JsonSerializer des .NET Frameworks konvertieren sauber in ISO 8601.

Auch das ß ist für Serializer normalerweise kein Problem, da UTF-8 eigentlich das Standard-Encoding ist.
Vermutlich ist Dein Problem Dein Serializer.

Ansonsten musst Du natürlich das Model via Html.Raw() in das HTML übertragen, da ansonsten die MVC Pipline Dein Json verändern kann.
Evtl. ist das Dein Problem.

Solltest Du Dir das noch nicht angeschaut haben, dass les Dir mal die ASP.NET Razor Dokumentation durch.
Ansonsten triffst Du immer wieder auf Verständnisprobleme bei der Generierung von Content.

3.003 Beiträge seit 2006
vor 6 Jahren

JSON Serializer wandelt meine DB Datumsfelder
JSON arbeitet eigentlich mit ISO 8601 und nicht mit Date(<Unix Timestamp>)
Was für ein Serializer soll das denn sein?

So einen Mist baut m.W. nur DataContractJsonSerializer. Was mich wundert, weil hier nirgends von einem WCF-Service die Rede war.

LaTino

"Furlow, is it always about money?"
"Is there anything else? I mean, how much sex can you have?"
"Don't know. I haven't maxed out yet."
(Furlow & Crichton, Farscape)