Ich verwende jQuery, um einen Ajax-Aufruf mithilfe eines HTTP-Posts in ASP.NET MVC durchzuführen. Ich würde gerne ein Wörterbuch der Werte weitergeben können.Wie übermittle ich ein Dictionary als Parameter an eine ActionResult-Methode von jQuery/Ajax?
Am nächsten kam mir die Übergabe eines mehrdimensionalen Arrays von Strings, aber das Ergebnis, das an die ActionResult-Methode übergeben wird, ist ein eindimensionales String-Array, das eine String-Verkettung des "key/value" enthält " Paar.
Zum Beispiel das erste Element in der unter „Werte“ Array enthält den folgenden Wert:
"id,200"
Hier ist ein Beispiel meiner Action Methode:
public ActionResult AddItems(string[] values)
{
// do something
}
Hier ist ein Beispiel dafür, wie ich m Aufruf der Methode von jQuery:
$.post("/Controller/AddItems",
{
values: [
["id", "200"],
["FirstName", "Chris"],
["DynamicItem1", "Some Value"],
["DynamicItem2", "Some Other Value"]
]
},
function(data) { },
"json");
Kann jemand ein Wörterbuch o übergeben bject von jQuery zu der ActionResult-Methode anstelle eines Arrays?
Ich würde wirklich meine Action wie diese gerne definieren:
public ActionResult AddItems(Dictionary<string, object> values)
{
// do something
}
Irgendwelche Vorschläge?
UPDATE: Ich habe versucht, ein Komma innerhalb des Wertes übergeben und es macht im Grunde nur unmöglich, das Schlüssel/Wert-Paar mit String-Parsing tatsächlich analysieren. diese
Pass:
values: [
["id", "200,300"],
["FirstName", "Chris"]
]
Ergebnisse in dieser:
values[0] = "id,200,300";
values[1] = "FirstName,Chris";
Ich glaube nicht, dass es einen Weg gibt, that.I zu tun falsch sein kann, aber es wird trivial, die Daten zu analysieren, als ging in String-Array und erstellen Sie das Wörterbuch selbst innerhalb der AddItems-Methode. –
Nicht sicher, welche Analyseprobleme durch Kommata innerhalb der Werte verursacht werden. –
Endlich habe ich es herausgefunden, danke an alle, die Vorschläge gemacht haben! Ich habe meine endgültige Lösung als Antwort unten hinzugefügt. Ich werde es als die richtige Antwort markieren, sobald SO mich lässt. Danke allen! –