Rozejrzałem się i wypróbowałem wiele różnych metod, ale nie mogę przekazać rzeczywistych danych do funkcji kontrolera.Jak zaimplementować połączenie PUT z danymi JSON za pomocą AJAX i JQuery?
Oto kod:
var URL = "/Timesheet/Timesheet/UpdateEntry";
var dataObject = { 'newWeekEntry': newEntry, 'oldWeekEntry': oldEntry };
alert(JSON.stringify(dataObject));
$.ajax({
url: URL,
type: 'PUT',
data: JSON.stringify(dataObject),
dataType: 'json',
success: function(result) {
alert("success?");
}
});
newEntry
i oldEntry
są oba obiekty.
Linia alert
wyprowadza ten (z niektóre właściwości usunięty, tylko dla zwięzłość):
{"newWeekEntry":{"MondayHours":2,"TuesdayHours":2,"WednesdayHours":5,"ThursdayHours":5,"FridayHours":"4","SaturdayHours":0,"SundayHours":0},"oldWeekEntry":{"MondayHours":2,"TuesdayHours":2,"WednesdayHours":5,"ThursdayHours":5,"FridayHours":2,"SaturdayHours":0,"SundayHours":0}}
Kiedy debugować moje działania kontrolera („UpdateEntry”), oba parametry są wypełnione domyślnymi parametrami TimesheetEntry
klasy (0).
Czy przekazuję to poprawnie?
można rozszerzyć na co masz na myśli mówiąc „Kiedy debugowanie moje działania kontrolera (” UpdateEntry "), dwa parametry są wypełniane domyślnymi parametrami klasy TimesheetEntry (0). "? Czego używasz na serwerze (np. Railsy) i w jaki sposób konwertujesz JSON na serwerze do TimesheetEntry? – InPursuit
Atrybut 'dataType' jest używany tylko w przypadku pobierania danych z serwera. Powinieneś ustawić 'contentType' na' application/json' podczas wysyłania danych do serwera. – InPursuit
Dziękuję InPursuit! To naprawiło to. Czy chcesz dodać tę odpowiedź jako odpowiedź i mogę ją zaakceptować? – Rail24