开发者

controller action executes only on first getJSON or AJAX get request

I'm using JQuery and MVC2 to make开发者_如何转开发 an AJAX request when the user clicks on a link. The links are using .live in jQuery like so:

$('.listdelete').live('click', function (event) {

            event.preventDefault();

            url = '/Controller/Action';

            data = getArguments();

$.getJSON(url, data, function (data) {

                alert('success!');

            });

When I drop a break point in my controller I can see that on the first user click the controller action is found and executed. On subsequent clicks the getJSON call executes the success alert, but the controller code is not executed. Is there a problem using .live with getJSON?


The problem probably lies (if you are using IE) in the fact that the browser caches your request. So you have a success but no real call is made. To avoid this you should do something like this:

$('.listdelete').live('click', function (event) {

            event.preventDefault();

            url = '/Controller/Action';

            data = getArguments();
            //get the timestamp
            var nocache = new Date().getTime();

            //add the timestamp as a paramter to avoid caching
            data['nocache'] = nocache;

$.getJSON(url, data, function (data) {

                alert('success!');

            });
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜