я, кажется, возникли вопросы, требующие в WebMethod с JQuery, я использую эту статью как мой отправной точкой:JQuery WebMethod Ошибка синтаксического анализа
http://www.misfitgeek.com/2011/05/calling-web-service-page-methods-with-jquery/
JS
function WebMethod(fn, paramArray, successFn, errorFn)
{
//----------------------------------------------------------------------+
// Create list of parameters in the form: |
// {'paramName1':'paramValue1','paramName2':'paramValue2'} |
//----------------------------------------------------------------------+
var paramList = '';
if (paramArray.length > 0) {
for (var i = 0; i < paramArray.length; i += 2) {
if (paramList.length > 0) paramList += ',';
paramList += '"' + paramArray[i] + '":"' + paramArray[i + 1] + '"';
}
}
paramList = '{' + paramList + '}';
//----------------------------------------------------------------------+
// Call the WEB method |
//----------------------------------------------------------------------+
$.ajax({
type: 'POST',
url: 'ContractView.aspx' + '/' + fn,
contentType: 'application/json; charset=utf-8',
data: paramList,
dataType: 'json',
success: successFn,
error: errorFn
});
};
Я переходя в этот метод следующим образом:
$(".editableField").keydown(function(e) {
WebMethod('PriceContract',
[
'AQ', aq.val(),
'SOQ', soq.val()
], updateTextFields, failed);
});
C# (Примечание эти методы испытаний, игнорировать логику ..)
[WebMethod]
public static ContractsListPricing PriceContract(string AQ, string SOQ)
{
ContractsListPricing clp = new ContractsListPricing();
// clp.Aq = nAQ * 2;
// clp.Soq = nSOQ * 2;
return clp;
}
При отладке JS paramList кажется правильным JSON (или я так считаю):
{» AQ ":" 140000 "," SOQ ":" 1169 "}
Это приводит к синтаксическому анализу, и я не уверен, почему.
Любая помощь приветствуется.
Благодаря
Я думаю, что это не правильный JSON. JSON должен иметь ключи с единичными квотами, а значения должны быть в кавычках. Удалите кавычки из ключевой переменной «AQ» и «SOQ» и попробуйте –
Вы пытались создать paramlist как объект, а не строку? Что-то вроде: 'paramsList [paramArray [i]] = paramArray [i + 1]'? Согласно документу $ .ajax(), он должен быть правильно сериализован jQuery перед отправкой – Tallmaris