Действие контроллера выполняется только при первом получении запроса getJSON или AJAX - PullRequest
0 голосов
/ 11 июля 2011

Я использую JQuery и MVC2, чтобы сделать запрос AJAX, когда пользователь нажимает на ссылку.Ссылки используют .live в jQuery следующим образом:

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

            event.preventDefault();

            url = '/Controller/Action';

            data = getArguments();

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

                alert('success!');

            });

Когда я опускаю точку останова в моем контроллере, я вижу, что при первом щелчке пользователя действие контроллера найдено и выполнено.При последующих щелчках вызов getJSON выполняет предупреждение об успехе, но код контроллера не выполняется.Есть ли проблема с использованием .live с getJSON?

1 Ответ

0 голосов
/ 11 июля 2011

Проблема, вероятно, заключается (если вы используете 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!');

            });
...