controller action仅在第一个getJSON或AJAX get请求时执行

时间:2011-07-11 12:30:38

标签: jquery getjson

当用户点击链接时,我正在使用JQuery和MVC2发出AJAX请求。链接在jQuery中使用.live,如下所示:

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

            event.preventDefault();

            url = '/Controller/Action';

            data = getArguments();

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

                alert('success!');

            });

当我在控制器中删除断点时,我可以看到在第一个用户单击时,找到并执行了控制器操作。在后续单击时,getJSON调用将执行成功警报,但不会执行控制器代码。使用.live和getJSON有问题吗?

1 个答案:

答案 0 :(得分:0)

问题可能在于(如果您使用的是IE)浏览器缓存您的请求。所以你取得了成功,但没有真正的电话。为避免这种情况,你应该这样做:

$('.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!');

            });