Как передать управляющие значения из javaScript в C # WebMethod - PullRequest
0 голосов
/ 24 ноября 2011

Я застрял в этом вопросе некоторое время и мог бы действительно воспользоваться некоторыми советами ...

Я работаю над веб-страницей ASP.Net, на которой до сих пор имеется около 60 элементов управления (текстовые поля, Флажки и выпадающие списки), некоторые из которых от веб-пользователя.Я хотел бы сделать, чтобы сохранить данные без обратной передачи, если это возможно.Я пытаюсь сделать это через AJAX, но не могу ссылаться на мои элементы управления с помощью веб-методов C #.

Есть ли способ вызвать обычный метод C # без обратной передачи?Или это единственный способ сделать это, передав, возможно, массив всех управляющих значений из JavaScript в веб-метод C #?Если это так, есть ли простой способ получить все управляющие значения в массив в JavaScript, а затем в DataTable в C #?

Не стесняйтесь предлагать любые другие решения этой проблемы.

Ответы [ 2 ]

1 голос
/ 24 ноября 2011

1001 * клиентской *

$.ajax({
            type: 'POST',
            url: "changebrands.aspx/UpdatePlan",
            data: '{token:"{0}", plan:"{1}"}'.format(token, currPlan),
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function (json) { //process return
            }

        });

серверная часть (C #)

using System.Web.Services;

    [WebMethod]
    public static string UpdatePlan(string token, string plan)
    {
        //whatever
    }

Если вы называете ключи словаря тем же именем, что и параметры метода, вы можете вызывать их напрямую.

1 голос
/ 24 ноября 2011

Я ответил на аналогичный вопрос здесь:

вызов публичной функции серверного элемента управления ajax asp.net со стороны клиента

Вы в основном настраиваете службу asmx,и добавьте некоторые атрибуты включения сценариев, которые позволяют диспетчеру сценариев генерировать некоторые вызовы-заглушки для прокси-серверов ajax.

Недавно я сделал именно это в веб-приложении, когда преобразовывал панели обновления форм, мой вызов на сервере выглядит примерно так:1009 *

var data = $("#inlineContent :input").serialize();
MyApplication.AttorneyService.PostAttorneyForm(data,
    function(result) { ... };
    function(error) { ... });

Затем на сервере я считываю строку сериализации в словарь и использую ее для заполнения бизнес-объекта, который знает, как обновить себя до сервера sql.

...