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
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!"
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
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!"
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
Microsoft MVP // Me // Blog // GitHub // @Egghead // All my talks // Speakerdeck
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
Siehe dazu: Dealing with JSON Dates in ASP.NET MVC
Weeks of programming can save you hours of planning
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
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.
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
JSON Serializer wandelt meine DB Datumsfelder
JSON arbeitet eigentlich mit ISO 8601 und nicht mitDate(<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)