Ich habe folgendes SetupC# MVC Ajax Kind listet
HTML
$.ajax({
url: 'Transaction/updateTransaction',
data: saveDataObject,
}).done(function (e) {
// done
});
, die in der Registerkarte Netzwerk zeigt, dass es die richtigen Daten
Abfragezeichen Parameter
Sendenkey:2445
transactionDescription:Description Block
transactionToType[0][transactionToTypeKey]:1
transactionToType[0][transactionKey]:2445
transactionToType[0][transactionValue]:51.25
transactionToType[0][transactionTypeKey]:10
transactionToType[1][transactionToTypeKey]:2
transactionToType[1][transactionKey]:2445
transactionToType[1][transactionValue]:10.5
transactionToType[1][transactionTypeKey]:1
-Controller
public class TransactionSave
{
public int key { get; set; }
public string transactionDescription { get; set; }
public List<TransactionToTypeSave> transactionToType { get; set; }
}
public class TransactionToTypeSave
{
public int transactionKey { get; set; }
public int transactionToTypeKey { get; set; }
public int transactionTypeKey { get; set; }
public decimal transactionValue { get; set; }
}
public int updateTransaction(TransactionSave transactionSave)
{
}
Wenn Sie einen Haltepunkt in updateTransaction tun kann ich sehen, transactionSave alle Daten (Schlüssel und Beschreibung) und die transactionToType Liste hat zwei Elemente, wie erwartet, jedoch hat diese beiden Listenelemente Alle Werte sind 0.
z
key:2445
transactionDescription: Description Block
transactionToType [
transactionToTypeKey:0
transactionKey:0
transactionValue:0
transactionTypeKey:0
], [
transactionToTypeKey:0
transactionKey:0
transactionValue:0
transactionTypeKey:0
]
Was mache ich falsch, um Listen innerhalb von Objekten über Ajax zu übergeben?
Dank
Ihre Daten für die Sammlung müssten im Format transactionToTypeKey: 1' (transactionToType [0]) sein (keine Klammern um den Namen der Eigenschaft). Aber Sie sollten keine Sammlung an eine GET-Methode senden. Abgesehen von der hässlichen Abfragezeichenfolge kann es die Abfragezeichenfolgengrenze überschreiten und eine Ausnahme auslösen –