Saya telah melihat-lihat dan mencoba berbagai metode, tetapi sepertinya tidak dapat meneruskan data aktual ke fungsi controller saya.
Berikut ini beberapa kode:
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
dan oldEntry
keduanya adalah objek.
Baris alert
mengeluarkan output ini (dengan beberapa properti yang dihilangkan, hanya untuk singkatnya):
{"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}}
Ketika saya men-debug aksi pengendali saya ("UpdateEntry"), dua parameter diisi dengan parameter default kelas TimesheetEntry
(0).
Apakah saya mengoper ini dengan benar?
Gunakan header: {"X-HTTP-Method-Override": "PUT"}
dan timpa jenis permintaan POST
. Ini bekerja pada proyek saya...
$.ajax({
type: 'POST', // Use POST with X-HTTP-Method-Override or a straight PUT if appropriate.
dataType: 'json', // Set datatype - affects Accept header
url: "http://example.com/people/1", // A valid URL
headers: {"X-HTTP-Method-Override": "PUT"}, // X-HTTP-Method-Override set to PUT.
data: '{"name": "Dave"}' // Some data e.g. Valid JSON as a string
});
$.ajax({
url: window.serverUrl + 'student/event/' + eventId,
type: 'put',
data: JSON.stringify(data),
headers: {
'x-auth-token': localStorage.accessToken,
"Content-Type": "application/json"
},
dataType: 'json'
})
Ini berhasil untuk saya