开发者

controller action executes only on first getJSON or AJAX get request

开发者 https://www.devze.com 2023-03-19 03:50 出处:网络
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:

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

精彩评论

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