Отправка данных в веб-сервис C # из Jquery ajax - PullRequest
0 голосов
/ 18 января 2011

Предположим, у меня есть веб-сервис / веб-метод с именем service.asmx / Test. У меня есть несколько методов в этом веб-сервисе.

Я хочу отправить некоторые данные любому данному методу. Данные состоят из нескольких вещей, и каждый метод может иметь различные типы переменных, отправляемых в него. В настоящее время я использую строковый тип [] [], поэтому мой веб-сервис выглядит следующим образом:

 [WebMethod]

        public void Test(string[][] data)
        {
            //do whatever
        }

мне было сказано, что это не лучший способ сделать это. Многие люди используют IDictionary и определяют сильные типы ... но кажется, что это добавит больше сложности. Как правильно это сделать? Какой тип переменной я должен использовать, List, string [] [], myCustomType?

Если я использую тип MyCustom, я бы хотел сделать его более общим, например

public class MyCustom {

        public string user { get; set; }
        public string domain { get; set; }
        public string client { get; set; }
        public string server { get; set; }

        Array<Object> params;

}

где данные - это массив объектов, каждый из которых может быть разного типа.

Таким образом, метод теперь будет выглядеть так:

[WebMethod]

        public void Test(MyCustom data)
        {
            //do whatever
        }

Спасибо

Ответы [ 2 ]

0 голосов
/ 13 мая 2011

Что вы можете сделать, так это использовать JSON для публикации данных на вашем веб-сервисе.Также в вашем веб-сервисе вы должны добавить следующее: [System.Web.Script.Services.ScriptService] Тогда вы можете использовать объект json в качестве данных вашего вызова ajax, а asp.net позаботится об остальном.

0 голосов
/ 18 января 2011

Принято решение передать несколько параметров вместо передачи ОДНОГО параметра типа MyCustom. Это решает проблемы как удобства обслуживания, так и гибкости.

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