views:

20

answers:

2

Hi There,

I am using a jQuery calendar to display events, which is designed to pull data from the server. On innit the calendar fires off a AJAX request to get an array of events objects (json encoded). All good so far. However, this request includes a JSON encoded date and time (at leats my implimentation does). The code looks like this:

data: function (start, end, callback) {
        $.post('/planner/GetPlannerEvents', { test: "test", start: JSON.stringify(start), end: JSON.stringify(end) }, function (result) { callback(result); });
    }

The declaration for the GetPlannerEvents controller method looks like this:

public ActionResult GetPlannerEvents(DateTime start, DateTime end)

The problem is that asp.net mvc 2 cannot seem to automatically parse the json encoded datetime and as such complains that the start and end values are null.

Is there another method I should be using to pass the javascript dates to the server so that they may be parsed correctly?

Thanks,

A: 

You need to use return type as JsonResults instead of ActionResults

your code goes somthing like this

public JasonResult(DateTime start, DateTime end){

//some logic

return Json(); // you can pass any values within Json() with new keyword }

Enjoy.........

Sameer Joshi
thanks, but an json result is an actionresult
Sergio
A: 

You shouldn't be JSON encoding the dates with stringify because the default model binder doesn't expect JSON. Try this:

$.post('/planner/GetPlannerEvents', { start: start.toUTCString(), 
    end: end.toUTCString() }, function (result) {
    callback(result); 
});
Darin Dimitrov