После долгих размышлений я нашел проблему. Я использовал редактируемый плагин jquery . Это было источником проблемы. Когда jeditable вызывает ajax jquery, он устанавливает параметры ajax, например:
var ajaxoptions = {
type: 'POST',
data: submitdata,
url: settings.target,
success: function(result, status) {
if (ajaxoptions.dataType == 'html') {
$(self).html(result);
}
self.editing = false;
callback.apply(self, [result, settings]);
if (!$.trim($(self).html())) {
$(self).html(settings.placeholder);
}
},
error: function(xhr, status, error) {
onerror.apply(form, [settings, self, xhr]);
}
};
так что он отправлял вещи просто html , и чтобы использовать это с методами страницы, нам нужно настроить вещи так, чтобы они отправляли как json . Поэтому нам нужно добавить что-то в настройки, например:
var ajaxoptions = {
type: 'POST',
data: submitdata,
url: settings.target,
dataType: 'json', //Data Type
contentType: 'application/json; charset=utf-8', //Content Type
//....other settings
};
Таким образом, я установил два новых свойства в настройках dataType и contentType и изменил выше это:
var ajaxoptions = {
type: 'POST',
data: submitdata,
url: settings.target,
dataType: settings.dataType,
contentType: settings.contentType,
//....other settings
};
Теперь возникла еще одна проблема :( она отправляла данные (из submitdata property) как обычную строку запроса, которую asp.net не принимает с json запросами. Поэтому мне пришлось используйте плагин json jquery и измените способ отправки данных в ajax с помощью следующего теста dataType:
if (settings.dataType == "json") {
if ($.toJSON) {
submitdata = $.toJSON(submitdata);
}
}
и работает как на ветер !!!