I've looked around and tried many different methods, but can't seem to pass actual data to my controller's function.
Here is some code:
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
and oldEntry
are both objects.
The alert
line outputs this (with some properties removed, just for brevity):
{"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}}
When I debug my controller action ("UpdateEntry"), the two parameters are filled with the TimesheetEntry
class default parameters (0).
Am I passing this in properly?
The dataType
attribute is only used when you're getting data from the server. You should be setting contentType
to application/json
when sending data to the server.