ich einen Kunden mit Äpfeln haben, ich habe eine Api Controller
, die einen Object Customer
als Parameter übernimmt und aktualisiert die bestehenden in der Datenbank mit diesen neuen Äpfel:Javascript - Array von Objekten an bestehenden Array von Objekten hinzufügen
[HttpPut("Update")]
public async void Put([FromBody]Customer customer)
{
await _repository.UpdateCustomer(customer);
}
Mit Javascript möchte ich diese neuen Äpfel zu meinem aktuellen List
von Äpfel im Kunden hinzufügen. Aus der Lektüre auf so sollte es in etwa so aussehen:
addApplesToCustomer_method: function() {
var updatedCustomer = this.currentCustomer;
Array.prototype.push.apply(updatedCustomer.apples, this.selectedApples);
$.ajax({
url: 'api/customer/update',
type: 'PUT',
contentType: "application/json",
data: JSON.stringify({
customer: updatedCustomer
}),
success: function() {
alert('success');
},
error: function (jqXHR, textStatus, errorThrown) {
alert('Error: ' + textStatus + '\n' + errorThrown);
}
});
}
currentCustomer
ist der Kunde wir aktualisieren möchten. selectedApples
ist die neue List
von Äpfel, die wir unseren bestehenden Array
von Apples hinzufügen möchten.
Das oben genannte läuft jedoch nicht einmal, seit ich die Array.prototype.push.apply(updatedCustomer.apples, this.selectedApples)
hinzugefügt habe, aber es gibt mir auch keinen Fehler. Es passiert einfach nichts. Wenn ich zurück gehe, um den Kunden und Äpfel separat zu meinem Controller zu senden, funktioniert es, aber ich will das nicht tun.
Klingt wie Sie benötigen [Object.assign()] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/assign) – Beau