Ich erzeuge Daten für Jquery flot in meinem MVC-Controller und möchte eine ausgefeiltere Struktur verwenden, wo ich die Farben für jeden Balken usw. ändern könnte.Wie man JSON-Daten von MVC4 an Flot weiterleitet, ohne einen Adapter zu schreiben
dies zu tun, ich data structure that looks following
{
label: "y = 3",
data: [[0, 3], [10, 3]]
}
ich hatte kein Problem Daten übergibt, wenn es war einfach Array, indem einfach die Daten zu erhalten und die Gestaltung den es wie folgt
var data = topAgents.Select(agent => new List<object>
{
agent.User != null ? string.Format("{0}", agent.User).Replace("SAGANTGB\\", "") : null,
agent.Amount
}).ToList();
return Json(data, JsonRequestBehavior.AllowGet);
passieren muß
und in Javascript-Seite:
function onAgentDataReceived(series) {
$("#agents").empty();
$.plot("#agents", [series], { bars: { show: true, barWidth: 0.6, align: "center" }, xaxis: { mode: "categories", tickLength: 0 } });
}
aber jetzt Daten in Ich kann nicht scheinen zu können, eine Struktur so gestalten, dass passen würde, was $ .plot erwartet.
Bisher habe ich versucht:
KeyValue Paar:
var grouped = result.GroupBy(o => o.CREATE_USER_ID).Select(agent => new
{
data = new KeyValuePair<string,int>(
agent.Key != null ? string.Format("{0}", agent.Key).Replace("SAGANTGB\\", "") : null, agent.Count()
),
color = "yellow"
}).ToList();
Objekt mit den Eigenschaften:
var grouped = result.GroupBy(o => o.CREATE_USER_ID).Select(agent => new
{
data = new { A=
agent.Key != null ? string.Format("{0}", agent.Key).Replace("SAGANTGB\\", "") : null, B = agent.Count()
},
color = "yellow"
}).ToList();
Name Wert Sammlung
var grouped = result.GroupBy(o => o.CREATE_USER_ID).Select(agent => new
{
data = new NameValueCollection
{{
agent.Key != null ? string.Format("{0}", agent.Key).Replace("SAGANTGB\\", "") : null, agent.Count().ToString()}
},
color = "yellow"
}).ToList();
Anonym Objektarray
var grouped = result.GroupBy(o => o.CREATE_USER_ID).Select(agent => new
{
data = new object[] { agent.Key != null ? string.Format("{0}", agent.Key).Replace("SAGANTGB\\", "") : null, agent.Count()},
color = "yellow"
}).ToList();
aber keiner von ihnen flied
IMHO einfach data = new object { agent.Key, agent.Count()},
sollte funktionieren aber es funktioniert nicht auf Build mit: Error 16 Invalid anonymous type member declarator. Anonymous type members must be declared with a member assignment, simple name or member access.
.
Ich könnte die Daten in JS nach dem Abrufen umformen, möchte jedoch diesen unnötigen Schritt vermeiden.
Wie kann ich Daten von MVC an Javascript übergeben, ohne es auf JS-Ende umzuformen?