Jquery $ .ajax () вызов веб-метода - PullRequest
2 голосов
/ 17 февраля 2010

Я никогда раньше не использовал $ .ajax (), и если вы видите какие-либо опечатки, дайте мне знать;)

Я использую jQuery $ .ajax () для вызова веб-метода с JSON.1004 * Простое определение веб-метода должно выглядеть примерно так:

[WebMethod]
public static bool MyMethod(string a, string b, string c) {
   ...
}

Значение параметра данных в $ .ajax ():

myData => "'a': 'val_a', 'b': 'val_b', 'c': 'val_c' "

Вот мой вызов ajax:

    $.ajax({
            type: "POST",
            url: "AspDotNetPage.aspx/MyMethod",
            data: "{"+myData+"}",
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function(msg) {
               alert(msg);                
            }
          });

Теперь сложная часть.Мне нужно добавить дополнительный параметр в мой веб-метод.Я должен отправить своему веб-методу все флажки внутри определенного div, их имена и, если они отмечены.У меня есть код Jquery, чтобы выбрать эти значения.Вот где я вижу в обычном программировании с выделенным кодом дополнительный параметр, например,

[WebMethod]
public static bool MyMethod(string a, string b, string c, Dictionary<string,bool> dict) {
       ...
}

, в котором хранится текстовое значение моего флажка, и если он установлен.

У меня нет туманного взглядаИдея о том, как на самом деле работает JSON, все, что я знаю, это то, что мне нужно сделать эту работу в ближайшее время.

Возможно, нужно использовать какие-то многомерные массивы javascripts.Если у вас есть идеи по поводу наилучшего подхода к этому вопросу, я был бы рад!

/ Даниэль Свенссон, Швеция

1 Ответ

1 голос
/ 19 февраля 2010

если вы сделаете свои bools обнуляемыми, вы можете просто использовать метод .serialize () для всех ваших значений, а флажки, которых нет в опубликованных данных, будут просто игнорироваться методом:

[WebMethod]
public static bool MyMethod(string a, string b, string c, bool? chkbox1, bool? chkbox2....) {
       ...
}

тебе нужно добавить bool? Параметр для всех возможных флажков на странице. это лучший способ обеспечить хороший метод для тестирования и т. д. Однако, если вы действительно хотите, вы можете добавить другой объект к вашим данным, например

data: { 'a':'val_a', 'b':'val_b','c':'val_c', 'dict': { 'chk1', 'chk2', 'chk3' } }

где chk1, chk2, chk3 - это массив, который вы создали из отмеченных флажков, и ваш параметр dict просто станет массивом строк.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...